认识面向对象
1.隔离变化
面向对象的构建方式更能适应软件的变化,将变化所带来的影响减为最小。
2.各司其职
面向对象的方式更强调各个类的责任,由于需求变化导致的新增类型不应该影响原来类型的实现。
3.对象是什么
从语言实现层面,对象封装了代码和数据。
从规格层面,对象是一系列公共接口。
从概念层面,对象是某种拥有责任的抽象。
面向对象的设计原则
1.依赖倒置原则(DIP)
高层模块(稳定)不应该依赖于实现细节(变化),实现细节应该依赖于抽象(稳定)。
2.开放封闭原则(OCP)
对扩展开放,对更改封闭。
类模块应该是可扩展的,但是不可修改。
3.单一职责原则(SRP)
一个类应该仅有一个引起它变化的原因。
变化的方向隐含着类的责任。
4.liskov替换原则(LSP)
子类必须能够替换它们的基类。
继承表达类型抽象。
5.接口隔离原则(ISP)
不应该强迫客户程序依赖它们不用的方法。
接口应该小而完备。
6.优先使用对象组合,而不是类继承
继承在某种程度上破坏了封装性,耦合度高。
对象组合只要求被组合的对象具有定义良好的接口,耦合度低。
7.封装变换点
使用封装来创建对象之间的分界层,在分界层一侧修改,不会对另一侧产生不良影响,实现层次间松耦合。
8.针对接口编程,而不是针对实现编程
不声明具体类型,而是声明为接口类型。
减少系统各部分的依赖关系,从而实现高内聚松耦合。