责任链,桥接,适配器,单例,命令哪个设计模式你最常用呢
设计原则
一、你都了解哪些设计原则,你对这些设计原则有哪些心得
1、单一职责原则 4、依赖倒置原则
2、开闭原则 5、里氏替换原则
3、接口隔离原则 6、迪米特法则
1、单一职责原则 UIView 与 CALayer 就是这种关系
UIView 负责事件响应和事件传递 CALayer 负责动画和试图的展示或显示
一个类只负责一件事,类的职责要单一
2、开闭原则 对修改关闭 对扩展开放
对一个类的定义要考虑到后续的扩展性,满足后续的迭代
尽量避免反复修改一个类
对扩展开放,对修改关闭
3、接口隔离原则 UITabView 就是这样的
使用多个专门的协议、而不是一个庞大臃肿的协议
一个协议中的方法也尽量少
UITableView的两个代理协议,一个回调 一个数据源控制
设计接口的时候要精简
4、依赖倒置原则
抽象不应该依赖于具体实现,具体实现可以依赖于抽象
定义接口增删该查的时候不应该依赖于上层业务调用
要面向接口编程
5、里氏替换原则 KVO
父类可以被子类无缝替换,且原有功能不受任何影响
KVO的原则就是生成了一个新的子类派生类,来完成调用
不要破坏继承体系
6、迪米特法则
一个对象应当对其他对象尽可能少的了解
高内聚、低耦合
降低耦合
二、责任链模式了解多少
结合实际应用场景这样回答:在当前类定义一个和当前类相同的一个成员变量,就组成了一个责任链的基本结构
三、你是怎样理解侨接设计模式的,或者说你能用简短的语言描述一下侨接设计模式
当一个列表依赖三个网络请求数据源,在不同的情况下使用不同的数据源,设计一个方案
桥接模式的 类构成
就是继承,多肽
四、适配器 没理解
对象适配器
类适配器
五、单例
单例的唯一性
六、命令模式
问题一、命令模式主要表达的是什么,主要用来干什么
命令模式,用来处理 行为参数化、作用:降低代码重合度
相关文章
- 【技术种草】cdn+轻量服务器+hugo=让博客“云原生”一下
- CLB运维&运营最佳实践 ---访问日志大洞察
- vnc方式登陆服务器
- 轻松学排序算法:眼睛直观感受几种常用排序算法
- 十二个经典的大数据项目
- 为什么使用 CDN 内容分发网络?
- 大数据——大数据默认端口号列表
- Weld 1.1.5.Final,JSR-299 的框架
- JavaFX 2012:彻底开源
- 提升as3程序性能的十大要点
- 通过凸面几何学进行独立于边际的在线多类学习
- 利用行动影响的规律性和部分已知的模型进行离线强化学习
- ModelLight:基于模型的交通信号控制的元强化学习
- 浅谈Visual Source Safe项目分支
- 基于先验知识的递归卡尔曼滤波的代理人联合状态和输入估计
- 结合网络结构和非线性恢复来提高声誉评估的性能
- 最佳实践丨云开发CloudBase多环境管理实践
- TimeVAE:用于生成多变量时间序列的变异自动编码器
- 具有线性阈值激活的神经网络:结构和算法
- 内网渗透之横向移动 -- 从域外向域内进行密码喷洒攻击