设计模式之创建型模式
一.单例模式:
含义:这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象;
场景:经常访问或设置,且参数唯一性;
例子:如配置和获取用户个人信息;
注意:该对象是全局的,不能滥用;
OC中使用:static HuNetOper *obj=nil;
static dispatch_once_tonce Token;
dispatch_once(&onceToken, ^{
obj=[[HuNetOper alloc] init];
});
return obj;
二:工厂模式
含义:一种创建对象时不暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象;
例子:比如一个自定义View,init它时,他创建了数组,颜色等;外部不用去管他,它自己去“加工”;
注意:复杂对象适合使用工厂模式,而简单对象,特别是只需要通过 new 就可以完成创建的对象,无需使用工厂模式。如果使用工厂模式,就需要引入一个工厂类,会增加系统的复杂度;
三:抽象工厂类
含义:围绕一个超级工厂创建其他工厂;
场景:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。
例子:需要一个套衣服,我就交给一个大厂(抽象工厂类),这个大厂里有只做衣服的安踏,和只做上衣的李宁;我们把上衣的和裤子的参数交给大厂就行了;实际上这个大厂并没有加工;
四:建造者模式
含义:使用多个简单的对象一步一步构建成一个复杂的对象;
使用场景:一些基本部件不会变,而其组合经常变化的时候;
用途:根据不同建造顺序生成不对的对象;
与工厂模式的区别是:建造者模式更加关注与零件装配的顺序。
五、原型模式
含义:用于创建重复的对象,同时又能保证性能;
用途:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象,不需要重新初始化消耗系统资源;