一.六大设计原则
设计模式应遵守六大设计原则,分别是 单 开 接 依 里 迪

设计模式可以分为三大类:
1.创建型模式:单例、工厂模式
2.结构型模式:代理、适配器、组合、装饰模式
3.命令型模式:责任链、观察者模式
二.责任链模式
iOS中的响应者链就是责任链设计模式的一种.
UIResponder有一个属性nextResponder也是UIResponder类型的,也就是自身包含自身类型的一个对象.
- 可以使用责任链模式来解决需求变更问题
原来有个需求: 业务a -> 业务b -> 业务c
现在需要改变顺序为 : 业务c -> 业务b -> 业务a
那么可以通过修改nextResponder的顺序就可以完成需求的变更.
三.桥接设计模式
创建一个抽象的父类,预留好方法声明.
然后创建多个子类根据不同的需求来复写父类的方法.
这样调用方就不需要知道具体哪个子类实现具体的逻辑,只需要调用父类预留的方法就好.
- 其实是利用了面向对象多态的特性.
四.适配器设计模式
适配器设计模式 : 一个现有类需要适应变化的问题.
- 对象适配器
对象a是一个久远的对象,现在需要修改部分逻辑.
解决办法: 新创一个对象b并把对象a作为其属性,然后对象b完成逻辑修改并掉用对象a原有的逻辑方法.
和hook相反:适配器是包装原对象,hook是拦截原对象
- 类适配器
五.单例设计模式
单例模式需要注意:别人可能通过alloc init 或者 copy方法创建,所以要重写allocWithZone
和copyWithZone
方法.
六.命令设计模式
命令设计模式 : 行为参数化,降低代码重合度
开始命令将其加入数组,执行完成移除数组.
通过判断是否在数组内就可以知道命令是否在执行中.
网友评论