关于iOS开发中的设计模式,当下有集中最常用的设计模式:代理模式、观察者模式、MVC模式、单例模式、策略模式、工厂模式、MVVM。
一、代理模式
使用地方:当一个类的某些姑娘需要由别的类来实现,但是又不确定具体是由哪个类来进行实现的。
使用优势:解耦合
eg:tableView的数据源delegate,通过和protocol的配合,完成委托。列表path.row的个数代理,以及自定义的delegate。
即传入对象实现对象的功能。
二、观察者模式
使用地方:一般为model层对controller和view进行的通知方式。只负责发送通知消息。
使用优势:解耦合
eg:Notification通知中心,注册通知中心,在任何位置都可以发送消息,注册观察者的对象皆可接收;kvo,键值对改变通知的观察者,平时基本没用过。
三、MVC模式
使用地方: MVC模式可以称为MCV模式,M(Model)和V(View)是分隔开来的,通过Controller从而使两个建立关系。定义一个应用所有需要抽象出来的数据结构(model)以及它们之间关系,还有获取它们的途径等。
使用优势:使应用项目层次更加清晰,职责分明,易于维护。
eg:model-数据模型,view-视图展示,controller进行UI展示和数据交互的逻辑处理。
四、单例模式
使用地方:确保程序运行期某个类,只有一份实例,用于资源共享控制。
使用优势:使用简单,延时求职,易于跨模块。
eg:[UIApplication sharedApplication]。
五、策略模式
使用地方:定义算法族,封装起来,使他们之间相互替换。
使用优势;使算法的变化独立于使用算法的用户。
eg:排序算法,NSArray的sortedArrayUsingSelector。
六、工厂模式
使用地方:工厂方式创建类的实例,多与proxy模式配合,创建可替换代理类。
使用优势:易于替换,面向抽象编程,application只与抽象工厂和易变类的共性抽象类发生调用关系。
网友评论