设计模式(2)
9、 原型模式
用原型实例指定创建对象的种类,并且通过这些拷贝这些原型来实现创建新的对象。
注意:浅复制和深复制。
10、 模板方法模式
当我们要完成在某一细节层次一致的一个过程或一系列步骤,但其个别步骤在更详尽的层次上实现可能不同时,通常考虑用模板方法模式来处理。
当不变的行为和可变的行为在方法子类实现中混合在一起的时候,不变的行为就会在子类中重复出现。用模板方法模式把这些不变的行为搬到单一的地方。
11、 迪米特法则
迪米特法则(lod)也叫最少知识原则。
如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用。如果其中一个类需要调用另一个类的某一方法的时候,可以通过第三者转发这个调用。
强调了类之间的松耦合。
12、 外观模式
又叫门面模式。
为子系统中的一组接口提供了一个一致的界面,此模式定义了一个高层接口,这个接口使得这个子系统更加容易使用。
13、 建造者模式
又称生成器模式。
将一个复杂对象的构建与他的表示分离,使得同样的构建过程可以创建不同的表示。
注:指挥者的createPerson(PersonBuilder pb)方法根据用户传的对象而创建不同的表示。
14、 观察者模式
又叫发布-订阅(publish/subscribe)模式,定义了一种一对多的依赖关系,让多个观察者对象同时监听某一主题对象。这个主题对象在状态发生变化时会通知所有观察者对象,使他们能自动更新自己。
观察者模式所做的工作是解除耦合,让耦合的双方都依赖于抽象,儿不是依赖于具体。从而使得一边的变化不会影响另一边的变化。