1 Observer和Visitor模式: Observer是一对多的关系,而Visitor是将数据结构和作用于结构上的操作之间的耦合解脱开,使得操作集合可以相对自由地演化。因此数据结构和操作分别使用稳定的接口抽象出来,让其他对象只依赖于稳定的接口,数据结构所使用的操作也是只依赖于稳定的接口。
2 Bridge模式中的所谓脱耦,就是指在一个软件系统的抽象化和实现化之间使用组合/聚合关系而不是继承关系,从而使两者可以相对独立地变化。
3 SimpleFactory,FactoryMethod和AbstractFactory: 这几种工厂模式的复杂度是逐渐增加的,SimpleFactroy是根据传入的参数来决定怎么创建,是典型的if else 模式,而FactoryMethod的创建是抽象关系,根据多态,根据不同的子类类型来创建不同的对象,而AbstractFactory是一个族的FactoryMethod,因此有多个Create方法来创建一个对象。
4 Proxy模式实现了逻辑和实现的解耦,和Decorator比较相似
5 设计需要记住的非常好的三个原则: "1)Design to interfaces. 2)Favor composition over inheritance. 3)Find what varies and encapsulate it"