一、创建型模式(6)
主要用于创建对象
1、简单工厂模式(Simple Factory Pattern)<br>
一句话概括:由某个工厂根据参数的不同创建一个产品的实例。
2、工厂方法模式(Factory Method Pattern)
一句话概括:由抽象工厂的子类具体工厂,根据参数的不同创建一个产品的实例。
3、抽象工厂模式(Abstract Factory Pattern)
一句话概括:由抽象工厂的子类具体工厂,创建一组产品的实例。
4、单例模式(Singleton Pattern)
一句话概括:保证一个类仅有一个实例,并提供一个访问它的全局访问点。
5、原型模式(Prototype Pattern)
一句话概括:一个对象实例的拷贝或克隆。
6、建造者模式(Builder Pattern)
一句话概括:完成一个复杂对象的组装与创建。
二、结构型模式(7)
主要用于处理如何组合类和对象
1、适配器模式(Adapter Pattern)
一句话概括:不同接口的匹配。
2、桥接模式(Bridge Pattern)
一句话概括:处理多维度的变化。
3、组合模式(Composite Pattern)
一句话概括:处理树形结构。
组合模式的关键是定义了一个抽象构件类,它既可以代表叶子,又可以代表容器,而客户端针对该抽象构件类进行编程,无须知道它到底表示的是叶子还是容器,可以对其进行统一处理。同时容器对象与抽象构件类之间还建立一个聚合关联关系,在容器对象中既可以包含叶子,也可以包含容器,以此实现递归组合,形成一个树形结构。<br>
4、装饰模式(Decorator Pattern)
一句话概括:为对象动态添加职责,扩展系统功能。
5、外观模式(Facade Pattern)
一句话概括:为子系统中的一组接口提供一个统一的入口。
6、享元模式(Flyweight Pattern)
一句话概括:支持大量细粒度对象的复用。(相同或者相似对象的共享内存访问)
简概:复用对象,节约内存,提高性能
比如tableview cell的复用机制
比如内存分布中的静态区和常量区
7、代理模式(Proxy Pattern)
一句话概括:给某一个对象提供一个代理,并由代理对象来控制对原对象的访问。
记忆方法:双空插座,【适配器、桥接、组合】【装饰、外观】【享元、代理】
三、行为型模式(11)
主要用于描述类或对象的交互以及算法封装和职责分配。<br>
交互、职责分配、算法封装
1、职责链模式(Chain of Responsibility Pattern)
一句话概括:将多个对象连接成一条链,并且沿着这条链传递请求。
场景举例:采购请求与领导审批
2、命令模式(Command Pattern)
一句话概括:对请求进行封装,一个请求对应一个命令,将请求发送者与接收者解耦。
用命令将调用者和接收者进行隔离
3、解释器模式(Interpreter Pattern)
一句话概括:定义一个语言的文法,并且建立一个解释器来解释该语言中的句子。
4、迭代器模式(Iterator Pattern)
一句话概括:遍历访问集合中的元素。
存储数据(聚合类)和遍历数据(迭代器类)的职责分离,为不同的聚合结构提供统一的遍历接口,同时提供不同的遍历实现算法
对外提供遍历的接口呢,同时也不暴露自己的私有属性。
5、中介者模式(Mediator Pattern)
一句话概括:用一个中介对象来封装一系列的对象交互。
6、备忘录模式(Memento Pattern)
一句话概括:“后悔药”的实现,比如撤销功能。
7、观察者模式(Observer Pattern)
一句话概括:一种通知若干类发生变化的机制。
8、状态模式(State Pattern)
一句话概括:用于解决系统中复杂对象的状态转换以及不同状态下行为的封装问题。
9、策略模式(Strategy Pattern)
一句话概括:将算法的定义放在专门的策略类中,每一个具体策略类封装了一种实现算法。
10、模板方法模式(Template Method Pattern)
一句话概括:定义一个操作中算法的框架,而将一些步骤延迟到子类中。
11、访问者模式(Visitor Pattern)
一句话概括:在类不变的情况下定义一个新的操作。
记忆技巧,我的【职责】是【命令】【解释器、迭代器、中介者、备忘录、观察者】记录【状态、策略以及模板方法和访问者】<br>