六大原则
开闭原则
对修改关闭,对扩展开放
单一原则
类似UIView和CALayer的功能,各司其职。
依赖倒置原则
抽象不依赖具体实现,具体实现依赖抽象。
接口隔离原则
使用单一的接口协议,避免使用复杂的臃肿的大协议
里氏替换替换
父类可以被子类无缝替换,原来的功能不受影响。在使用者无感知的情况下,替换原来的方法。
迪米特原则
一个对象应该对其他对象尽可能少的了解。高内聚,低耦合。
创建型模式
单例模式
App生命周期里只存在一个。注意重写copyWithZone、allocWithZone和调用[[super allocWithZone:nil]init]
工厂模式
结构性模式
适配器模式
适应变化,不改变原有对象,然后增加新方法或者使用原有方法
代理模式
组合模式
装饰模式
桥接模式
解除耦合问题
行为型模式
责任链模式
解决调用顺序问题
观察者模式
命令模式
行为参数化,降低代码重合度。比如转发、评论和赞等
MVC
MVP
MVVM
