iOS设计模式
设计模式:MVC模式、单例模式、观察者模式、工厂模式、代理模式、策略模式、适配器模式、模版模式、外观模式、创建模式
(1)MVC模式
model保存应用和处理数据逻辑、view负责model数据和交互控件到显示、controller负责model和View之间的通信;
(2)单例模式
用一个静态方法返回这个类的对象。系统只需要拥有一个全局对象,这样有利于我们协调系统整体的行为,这个对象是全局唯一的。整个项目里面之开辟一块内层、方便传值和修改单例的属性,比如登录之后获取的用户数据存储、NSNotificationcenter、 NSUserdefaults;shareApplication 确定是这块内层直到项目推出时才能释放。应用场景:确保程序运行期某个类,只有一份实例,用于进行资源共享控制。优势:使用简单,延迟求值; 易于跨模块敏捷原则:单一职责原则
(3)观察者模式
通过添加观察者来观察某个对象的实例变量的变化、当该被观察到对象的实例变量发生时,观察者响应observeValueForKeyPath 方法,如常用的导航栏渐变。
(4)工厂模式
快速创建对象的方式。将对象的创建和属性赋值封装成类方法,如:创建常用按钮、textFeild等,forState这些枚举值不用反复写,可以使调用工厂方法代码更加简洁。 应用场景: 工厂方式创建类的实例,多与proxy模式配合,创建可替换代理类。优势:易于替换,面向抽象编程,application只与抽象工厂和易变类的共性抽象类发生调用关系。 劣势:增加了代码的复杂度,增加了调用层次,增加了内存负担。所以要注意防止模式的滥用。
(5)代理模式
代理模式给某一个对象提供一个代理对象,并由代理对象控制对象的引用。比如一个工厂生产了产品,并不想直接卖给用户,而是搞个很多代理商,用户可以直接找代理商买东西,代理商从工厂进货。
(6)策略模式
把一些独立的算法单独封装起来;