iOS开发中常用的设计模式

2021-04-12  本文已影响0人  帅帅的mum

1、代理 

场景:当一个类的某些功能需要由别的类来实现,但是又不确定具体会是哪个类实现。

优势:解耦合

敏捷原则:开放-封闭原则

实例:tableview的 数据源delegate,通过和protocol的配合,完成委托诉求

总结:传入对象实现对象的功能

2、观察者

场景:一般为model层对,controller和view进行的通知方式,不关心谁去接收,只负责发布信息。

优势:解耦合

敏捷原则:接口隔离原则,开放-封闭原则

实例:Notification通知中心,注册通知中心,任何位置可以发送消息,注册观察者的对象可以接收。

3、MVC

场景:是一中非常古老的设计模式,通过数据模型,控制器逻辑,视图展示将应用程序进行逻辑划分。

优势:使系统,层次清晰,职责分明,易于维护

敏捷原则:对扩展开放-对修改封闭

实例:model-即数据模型,view-视图展示,controller进行UI展现和数据交互的逻辑控制。

4、单例

场景:确保程序运行期某个类,只有一份实例,用于进行资源共享控制。

优势:使用简单,延时求值,易于跨模块

敏捷原则:单一职责原则

实例:[UIApplication sharedApplication]。

注意事项:确保使用者只能通过 getInstance方法才能获得,单例类的唯一实例。

object c中,重写allocWithZone方法,保证即使用户用 alloc方法直接创建单例类的实例,

返回的也只是此单例类的唯一静态变量。

单例用static修饰实例只会分配一次内存,且定义单例需要写类方法,只有静态变量才能在类方法中使用

5、MVVM

model、View、viewModel、controller

在典型的 MVC 应用里, 许多逻辑被放在 View Controller 里。它其实是一个 MVC 的增强版,并将表示逻辑从 Controller 移出放到一个新的对象里,即 View Model

在 iOS 上使用 MVVM 的动机,就是让它能减少 View Controller 的复杂性并使得表示逻辑更易于测试


上一篇 下一篇

猜你喜欢

热点阅读