《Design Patterns: Elements of Reusable Object-Oriented Software》(即后述《设计模式》一书),由 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides 合著(Addison-Wesley,1995)。这几位作者常被称为"四人组(Gang of Four)"。
设计模式的奥义 不在于 照搬 死记硬背, 而在于合适的场景下又灵活应用, 领略到它们变幻无穷的魔力。
*************************
设计模式分为了 创建型,结构型,行为型。
创建型:
1. Factory Method(工厂方法)
2. Abstract Factory(抽象工厂)
3. Builder(建造者)
4. Prototype(原型)
5. Singleton(单例)
结构型:
6. Adapter Class/Object(适配器)
7. Bridge(桥接)
8. Composite(组合)
9. Decorator(装饰)
10. Facade(外观)
11. Flyweight(享元)
12. Proxy(代理)
行为型:
13. Interpreter(解释器)
14. Template Method(模板方法)
15. Chain of Responsibility(责任链)
16. Command(命令)
17. Iterator(迭代器)
18. Mediator(中介者)
19. Memento(备忘录)
20. Observer(观察者)
21. State(状态)
22. Strategy(策略)
23. Visitor(访问者)
*************************
三大原则
OCP 开闭原则:
一个软件实体应该对扩展开放,对修改关闭。 就是 扩展功能的时候增加 新的类,而不去动原有代码;
DIP 依赖倒转原则:
面向接口编程,不要面向类编程,尽量不要发生继承;
LOD 迪米特法则:
只与你的朋友通信,避免和陌生人通信。尽量减少对于其他类的依赖;
以上基本上都是为了 减少耦合;增强内聚力 ;