『蚂蚁学模式』之实例化策略(Strategy)模式
摘要: 策略模式属于对象的行为模式。
其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。
阅读全文
『蚂蚁学模式』之实例化门面(Facade)模式
摘要: 门面模式是对象的结构模式。
门面模式要求一个子系统的外部与其内部的通信必须通过一个统一的门面(Facade)对象进行。
阅读全文
『蚂蚁学模式』之实例化代理(Proxy)模式
摘要: 给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。
阅读全文
『蚂蚁学模式』之实例化装饰(Decorator)模式
摘要: 又称包装(wrapper)模式。
以对客户端透明(客户端并不会觉得对象在装饰前后有什么不同,老孙就是老孙!^_^)的方式扩展对象的功能,是继承关系的一个替代方案。
阅读全文
『蚂蚁学模式』之实例化合成(Composite)模式
摘要: 合成模式将对象组织到树结构中,可以用来描述整体与部分的关系。合成模式可以使客户端将单纯元素与复合元素同等对待。
适用场合:
1. 需要描述对象的部分和整体的等级结构。
2. 需要客户端忽略掉个体构件和组合构件的区别。客户端必须平等对待所有的构件,包括个体构件和组合构件。
阅读全文
『蚂蚁学模式』之实例化缺省适配器(Default Adapter)模式
摘要: 缺省适配器模式:为一个接口提供缺省实现,这样子类型可以从这个缺省实现进行扩展,而不必从原有接口进行扩展。
“平庸化”的适配器模式。
阅读全文
『蚂蚁学模式』之实例化适配器(Adapter)模式
摘要: 使用场合:
1)系统需要使用现有的类,而此类的接口不符合系统的需要。
2)想要建立一个可以重复使用的类,用于与一些彼此之间没有太大关联的一些类,包括一些可能在将来引进的类一起工作。这些源类不一定有很复杂的接口。
3)(对对象的适配器模式而言)在设计里,需要改变多个已有的子类的接口,如果使用类的适配器模式,就要针对每一个子类做一个适配器类,而这不太实际。
阅读全文
『蚂蚁学模式』之实例化原型模式
摘要: 用意:通过给出一个原型对象来指明所要创建的对象的类型,然后用复制这个原型对象的办法创建出更多同类型的对象。
阅读全文
『蚂蚁学模式』之实例化建造者模式
摘要: 建造者模式可以将一个产品的内部表象与产品的生成过程分割开来,从而可以使一个建造过程生成具有不同的内部表象的产品对象。
阅读全文
『蚂蚁学模式』之实例化单例模式(二)
摘要: 前面说了单例模式,这次说说单例模式的推广——多例模式。
阅读全文
『蚂蚁学模式』之实例化单例模式(一)
摘要: 单例模式在实际应用中已经逐步被Ioc容器替代,实用价值不高
阅读全文
『蚂蚁学模式』之实例化抽象工厂模式及碎言
摘要: 而这次,汽车厂(MotorFactory)有新的需求,不只要生产国产车(NativeMotor),还需要生产进口车(ForeignMotor)。这两种车都包括公交(Bus)和小轿车(Car)。
阅读全文
『蚂蚁学模式』之实例化简单工厂、工厂方法模式
摘要: 先看实例,很简单。UML图也懒得画了,更喜欢CRC卡片的方式。
阅读全文
『蚂蚁学模式』之迪米特法则(LoD)
摘要: 一个对象应当对其他对象有尽可能少的了解。
11.1 迪米特法则的各种表述:
1)只与你直接的朋友们通信。
2)不要跟“陌生人”说话。
3)每一个软件单位对其他的单位都只有最少的知识,而且局限于那些与本单位密切相关的软件单位。
阅读全文
『蚂蚁学模式』之合成/聚合复合原则(CARP)
摘要: 合成/聚合复用原则:在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分;新的对象通过向这些对象的委派达到复用已有功能的目的。
简言之:要尽量使用合成/聚合,尽量不要使用继承。
阅读全文