这篇是接着上一篇
4.生成器模式
定义:
将一个复杂对象的构建与它的表现分离,使得同样的构建过程可以创建不同的表现。
适用情景:
需要创建涉及各种部件的复杂对象。创建对象的算法应该独立于部件的装配方式。常见例子是构建组合对象。
构建过程需要以不同的方式构建对象。
将做什么 和 怎么做 两个问题分开解决。
5.单例模式
定义:保证一个类仅有一个实例,并且提供一个访问它的全局访问点。
适用情形:
类只能有一个实例,而且必须从一个为人熟知的访问点对其进行访问,比如工厂方法。
这个唯一的实例只能通过子类化进行扩展,而且扩展的对象不会破坏客户端代码。
6.适配器模式
适配器模式,用于连接两种不同种类的对象,使其毫无问题地协同工作,有时它也称为包装起"wrapper"。
基本上有两种实现适配器的方式:
1.通过集成来适配来适配两个接口,这种称为类适配器,多通过多重继承来实现,但是OBJ-C没有多重继承,可以通过协议来实现。
2.对象适配器。与类适配器不同,对象适配器不继承被适配者,而是组合一个对它的引用。
定义:
将一个类的接口转换成客户希望的另一个接口,适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
适用情形:
已有的类的接口和需求不匹配。
想要一个可复用的类,该类能够同可能带有不兼容接口的其它类协作。
需要适配一个类的几个不同子类,可是让每一个子类去子类化一个类适配器又不现实。那么可以通过使用对象适配器(也叫委托)来适配其父类的接口。
7.桥接模式
定义:将抽象部分与它的实现部分分离,使它们都可以独立的变化。
适用情形:
不想在抽象与其实现之间实现固定的绑定关系。
抽象及其实现都应该可以通过子类化独立进行扩展。
对抽象的实现进行修改不应该影响客户端的代码。
如果每个实现需要额外的子类以细化抽象,择说明有必要把他们分成两个部分。
想在带有不同抽象接口的多个对象之间共享一个实现。