iOS Cocoa 中的设计模式之我告诉你

52 阅读1分钟
image.png

1. 命令模式 —— NSInvocation

把一个操作(一次函数调用)封装成一个对象,这么做可以把操作放到队列中,并且实现「可撤销」操作。

2. 适配器模式 —— 协议 protocol 和分类 category

目的:为了让接口不兼容的类一起工作。

举例说明:

我需要下载图片,但是有很多种下载器给我选择,每个下载器的下载方法名称不一样,我有很多地方都需要用下载器下载图片,如果在业务代码中直接用某个下载器,后期修改的时候会整死我。

所以创建一个适配器的协议,拿着适配器去下载图片就行。

针对不同的下载器创建不同的适配器,后期如果要改下载器的话直接改一个地方就行:就是选择创建哪种适配器

category 是非正式地让一个类遵循了协议,它也算是一种适配器模式的应用。

一篇参考文章

3. 装饰者模式

在不改动原对象的情况下,为原对象添加功能

比如,OC 的 category 和 swfit 的 extension

4. 观察者模式

KVO ,NSNotification

参考资料

  1. 苹果很老的资料
  2. 字节跳动工程师写的设计模式文章
  3. 设计模式,GURU(买的电子书)