1. 命令模式 —— NSInvocation
把一个操作(一次函数调用)封装成一个对象,这么做可以把操作放到队列中,并且实现「可撤销」操作。
2. 适配器模式 —— 协议 protocol 和分类 category
目的:为了让接口不兼容的类一起工作。
举例说明:
我需要下载图片,但是有很多种下载器给我选择,每个下载器的下载方法名称不一样,我有很多地方都需要用下载器下载图片,如果在业务代码中直接用某个下载器,后期修改的时候会整死我。
所以创建一个适配器的协议,拿着适配器去下载图片就行。
针对不同的下载器创建不同的适配器,后期如果要改下载器的话直接改一个地方就行:就是选择创建哪种适配器
category 是非正式地让一个类遵循了协议,它也算是一种适配器模式的应用。
3. 装饰者模式
在不改动原对象的情况下,为原对象添加功能
比如,OC 的 category 和 swfit 的 extension
4. 观察者模式
KVO ,NSNotification