-
概念理解
面向对象的设计初衷是,为了抵御代码层面上不断变化的需求关系
三大特性:封装,继承,多态
五大原则:单一职责、开放封闭、里式替换、依赖倒置、接口分离
-
扩展理解特性
- 隔离变化:将变化的部分与稳定的部分通过利用接口隔离开来
- 各司其职:新增的对象,不应当影响原有类型
一般一个合理的设计模式需要遵循八大设计原则(前5大为面向对象原则),这些原则就好像是一把标尺,用来衡量你的应用代码设计品质是否正确
稳定 --- 业务角度上处于稳定的部分
变化 --- 业务角度上处于调研或者用户反馈不确定的部分
-
依赖倒置原则(DIP) --- 隔离变化
稳定(业务稳定)的模块不应该依赖于不稳定(业务不确定)的模块,两则都应该依赖于抽象(稳定)
同理抽象(稳定)不应该依赖于实现细节(不稳定,变化的部分),实现细节应该依赖于抽象
-
开放封闭原则(OCP) --- 各司其职
对扩展开放,对更改封闭
类模块应该是可扩展,但是不可修改
-
单一职责原则(SRP)
一个类应该仅有一个引起它变化的原因
变化的方向隐含着类的职责
-
Liskov替换原则(LSP)
子类必须能够替换他们的基类
继承表达类型的抽象
-
接口隔离原则(ISP)
接口应该小而完备
不应该强迫客户程序依赖他们不用的方法
-
优先使用对象组合(成员变量),而不是类继承
部分包含的关系下,继承在某种程度上破坏了封装类,子类父类的耦合度高
-
封装变化点 --- 封装作用宏观的理解
创建变化于稳定之间的分界层,保证变化部分不影响稳定部分
-
针对接口编程,而不是针对实现编程
原则上来说,一切变化的部分都应该申明接口后去写实现
- 模板方法
- 策略模式
- 观察者模式
- 装饰模式
- 桥模式
- 工厂模式
- 抽象工厂模式
- 原型模式
- 构建器模式
- 单件模式
- 享元模式
- 门面模式
- 代理模式
- 适配器模式
- 中介者
- 状态模式
- 备忘录
- 组合模式
- 迭代器模式
- 职责链模式
- 命令模式
- 访问器模式
- 解释器