《Design Patterns: Elements of Reusable Object-Oriented Software》
------ 尝试构建高效、可维护和可扩展的方式来构建软件系统。
设计原则:
1. 单一职责原则(SRP):一个类只做一件事
2. 开闭原则(OCP):对扩展开放,对修改关闭
3. 里氏替换原则(LSP):子类应能替换父类
4. 接口隔离原则(ISP):避免臃肿接口
5. 依赖倒置原则(DIP):依赖抽象而非实现
经典的软件设计模式主要分为三大类:创建型、结构型和行为型,以下是它们的分类:
1.创建型模式(Creational Patterns)
单例模式(Singleton):保证一个类仅有一个实例,并提供一个访问它的全局访问点。

简单工厂模式 (Simple Factory Pattern):
工厂方法模式(Factory Method):定义了一个用于创建对象的接口,但让子类决定实例化哪一个类。即实例化延迟到子类。

抽象工厂模式 (Abstract Factory Pattern):创建相关或者依赖对象的家族,而无需指定具体类。

生成器(Builder): 将一个复杂对象的构建与他的表示分离,使得同样的构建过程可以创建不同的表示。

原型(Prototype):用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。

2.结构型模式
适配器(Adapter):将一个类的接口转换成客户希望的另一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的哪些类可以一起工作。

装饰器(Decorator):动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator模式相比生成子类更为灵活

代理
组合(Composite)

外观
桥接(Bridge):将抽象部分与它的实现部分分离,使它们都可以独立地变化

享元(Flyweight):运用共享技术有效地支持大量细粒度的对象。
3.行为型模式
观察者
策略
命令
模板方法
责任链
状态
访问者(Visitor Pattern):分离算法与对象结构,使得可以在不修改现有对象结构的情况下向对象结构添加新操作。
中介者(Mediator Pattern):集中对象交互
迭代器(Iterator Pattern):提供遍历集合的统一方式
备忘录(Memento Pattern):捕获对象状态已便恢复
解释器(Interpreter Pattern):定义与语法规则
结构