设计原则
一、你都了解哪些设计原则,你对这些设计原则有哪些心得
1、单一职责原则 4、依赖倒置原则
2、开闭原则 5、里氏替换原则
3、接口隔离原则 6、迪米特法则
1、单一职责原则 UIView 与 CALayer 就是这种关系
UIView 负责事件响应和事件传递 CALayer 负责动画和试图的展示或显示
一个类只负责一件事,类的职责要单一
2、开闭原则 对修改关闭 对扩展开放
对一个类的定义要考虑到后续的扩展性,满足后续的迭代
尽量避免反复修改一个类
对扩展开放,对修改关闭
3、接口隔离原则 UITabView 就是这样的
使用多个专门的协议、而不是一个庞大臃肿的协议
一个协议中的方法也尽量少
UITableView的两个代理协议,一个回调 一个数据源控制
设计接口的时候要精简
4、依赖倒置原则
抽象不应该依赖于具体实现,具体实现可以依赖于抽象
定义接口增删该查的时候不应该依赖于上层业务调用
要面向接口编程
5、里氏替换原则 KVO
父类可以被子类无缝替换,且原有功能不受任何影响
KVO的原则就是生成了一个新的子类派生类,来完成调用
不要破坏继承体系
6、迪米特法则
一个对象应当对其他对象尽可能少的了解
高内聚、低耦合
降低耦合
二、责任链模式了解多少
结合实际应用场景这样回答:在当前类定义一个和当前类相同的一个成员变量,就组成了一个责任链的基本结构
三、你是怎样理解侨接设计模式的,或者说你能用简短的语言描述一下侨接设计模式
当一个列表依赖三个网络请求数据源,在不同的情况下使用不同的数据源,设计一个方案
桥接模式的 类构成
就是继承,多肽
四、适配器 没理解
对象适配器
类适配器
五、单例
单例的唯一性
六、命令模式
问题一、命令模式主要表达的是什么,主要用来干什么
命令模式,用来处理 行为参数化、作用:降低代码重合度