总论:
最近看了一本iOS设计模式的一本书,看书的过程中积累了一些心得,趁着今天有时间就在这里写出来做分享:做一件事情久了,往往就会有做事的固定模式,好的模式就会让我们做事变的高效,事半功倍;
对象创建
原型模式
原型模式是创建性的设计模式,通过拷贝的方式快速的创建一个对象;
使用场景
- 对象类型需要在运行时才能确定
- 需要某对象在某状态下的副本
- 对象间的差别很小,使用原型系统复制一个对象后再进行必要的修改
工厂模式
工厂方法模式:定义创建对象的接口,让子类决定实例化哪一个类,工厂方法使得一个类的实例化延迟到其子类;
使用场景
- 编译时无法准确预期要创建对象的类;
- 类想让子类决定在运行时创建什么;
抽象工厂
抽象工厂:提供一个创建一系列相关或相互依赖的对象接口,而无需指定它们具体的类。
抽象工厂 工厂方法
通过对象组合创建抽象产品 通过类继承创建抽象产品
创建多系列产品 创建 一种产品
必须修改父类接口才能支持新的产品 子类化创建者并重载工厂方法以创建新产品
生成器
生成器:将一个复杂对象的构建与它的表现分离,使得同样的构建过程可以创建不同的表现;
使用场景
- 需要创建涉及各种部件的复杂对象;
- 构建过程需要以不同的方式构建对象;
单例
单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点;
使用场景
- 类只能有一个实例,并且从一个为人熟知的访问点对其进行访问。
- 这个唯一的实例只能通过子类化进行扩展,并且扩展的对象不会破坏客户端代码;