本文适合读者:1.已经理解了23种设计模式意义的读者;2.为了方便记忆
前半句为这种设计模式的目的,后半句为可能使用的方法
创建型模式
0.简单工厂方法(Simple Factory Method):为了把创建实例的代码放到一起,用一个类进行封装(创建函数需指定具体类别)《Head First设计模式》中提到该模式
1.工厂方法(Factory Method):为了将创建与使用对象的代码分离开,编写创建函数并返回抽象类型
2.抽象工厂方法(Abstract Factory Method):为了创建多种抽象类型组合,提供多个创建方法返回不同的抽象类型
3.单例模式(Singleton Pattern):为了确保全局唯一的实例,将构造函数私有化并提供静态或全局的获取实例的方法
4.原型模式(Prototype Pattern):为了拷贝已存在的对象实例,需要将已存在对象作为参数传入拷贝方法
5.建造者模式(Builder Pattern)(又叫生成器模式):为了分离建造过程与细节(建造过程步骤确定,但每一步的实现细节是可变的),将每一步抽象成接口方法
结构型模式
6.适配器模式(Adapter Pattern):为了适配满足需要的变量、参数形式等,将已有功能作为入参(一般是已有类、变量列表、结构)进行适配动作
7.外观模式(Facade Pattern):为了简化接口的调用,将需要的接口都汇总到一个接口
8.装饰模式(Decorator Pattern):为了扩展现有类并且不修改它,创建基类(有需要扩展的抽象方法)和继承旁支(有基类引用并实现抽象方法)
9.组合模式(Composite Pattern):为了组织不同类型对象间的层次结构并且统一地使用它们,创建基类并把它们放到一个结构里(如链表,向量等)
10.代理模式(Proxy Pattern):为了简化使用和实现访问控制,通过代理类屏蔽实现细节
11.桥接模式(Bridge Pattern):为了应对被使用的功能其实现可能频繁变化并且存在多种实现
12.享元模式(Flyweight Pattern):为了减少重复对象的创建,使用缓存来共享对象
13.过滤器模式(Filter、Criteria Pattern)