设计模式

六大设计原则:单一职责原则、依赖倒置原则、开闭原则、里氏替换原则、接口隔离原则、迪米特法则;

单一职责原则:一个类只负责一个事(UIView,Calayer)

开闭原则:
对修改关闭、对扩展开发。(避免对类的反复修改,类的数据结构设定后,可利用扩展的方式,修改)

接口隔离原则:(UITableView的两个协议)
使用多个专门协议,避免庞大协议:dataSource(数据源),delegate(回调代理事件)

里氏替换原则:(KVO)(A-->NSKVONotifying_A)
父类可以被自类无缝替换,且原有功能不受影响。

迪米特法则:
一个对象应该对其他对象有尽可能少的了解,成员变量以及方法。
高内聚 低耦合

依赖倒置原则:
抽象不应该依赖具体实现,具体实现可以依赖抽象。

向我们使用的数据的增删改查,只需要报露接口,不需要让调用方知道,我们是使用的那种的存储方式。

责任链模式:
一个需求变更逻辑问题?业务流程调整?
桥接模式:
解耦问题:

适配器:对象适配器、类适配器

通过成员变量的方式集成要被更改的类,比如说:要修改类A,直接在创建一个类,并将要修改的类,创建成员变量。

单例模式:
创建的方式:
重写两个方法:
allocWithZone: && copyWithZone: 防止创建新的对象。

命令模式:行为参数化,降低代码重合度。

图片缓存框架的实现:

构建:

Manager(负责调度) 内存缓存 ->磁盘缓存(解码&&压缩/解压缩)-> 网络下载-->存储在内存缓存中。

记录器的类别:
页面式(push开始,pop结束)
流式(阅读浏览某条新闻时间)
自定义式(视频播放开始结束)

RN:数据流--->子节点没有处理刷新数据的能力,使用反向刷新的操作。

桥接模式:

(1) 抽象类A(调用方) 有属性抽象类B(数据层) , 抽象A 或 B 又有 不同的抽象A、B的子类与之对应。子类中分别实现父类方法,调用的不同的逻辑。这样就实现了不同的数据类耦合的现象。
在调用的时候,分别取不同的组合就可以了。

责任链模式:需求变更问题-------

转发评论赞 :命令模式:行为参数化。 降低代码重合度。

你可能感兴趣的:(设计模式)