实现开闭原则的关键是抽象化,并且从抽象化导出具体化实现,如果说开闭原则是面向对象设计的目标的话,那么依赖倒转原则就是面向对象设计的主要手段。
依赖倒转原则的常用实现方式之一是在代码中使用抽象类,而将具体类放在配置文件中。
类之间的耦合
零耦合关系。
具体耦合关系。
抽象耦合关系。
依赖倒转原则要求客户端依赖于抽象耦合,以抽象方式耦合是依赖倒转原则的关键。


- 创建私有变量,用以记录的唯一实例
- 内部进行实例化
- 把类的构造方法私有化,不让外部调用构造方法实例化
- 定义公有方法提供该类的全局唯一访问点
- 外部通过调用静态方法来返回唯一的实例


策略模式的关注点主要在于提取算法的抽象,实现不同算法间的替换。
而桥接模式的关注点在于实体和实现的分离,也就是可以相互独立的变化。 (>=策略)
简单工厂


接口规定各个功能模块,
对应类实现各个功能模块而无需考虑模块之间的调用关系。
总管理类调用对应类的各个模块完成产品,而无需考虑模块的实现方式。

抽象构件(Component):叶子构件和容器构件继承的抽象类,包含叶子和容器的共有行为的声明,如业务方法,也可能包含管理叶子的方法。
叶子构件(Leaf):树的叶结点,实现抽象构件的业务方法,对于容器特有的管理子结点的方法,可以使用空方法或者抛出异常处理。
树枝构件(Composite):树的叶结点,实现抽象构件的业务方法,对于容器特有的管理子结点的方法,可以使用空方法或者抛出异常处理。



动机:
做法:
动机:
做法:
动机:
做法:
动机:
做法:
动机:
做法:
动机:
做法:
动机:
做法:
动机:
做法:
动机:
做法:
动机:
做法:
动机:
做法:
动机:
做法:
动机:
做法: