架构师训练营第二周总结

/ 架构师训练营 / 没有评论 / 564浏览

面向对象的设计目的

强内聚、低耦合,让系统
易扩展 易于增加新的功能
更强壮 不容易被粗心的程序员破坏
可移植 能够在多样的环境下运行
更简单 容易理解、容易维护

面向对象的设计的基本原则

OOD原则一:开闭原则(OCP)

开闭原则的思想是,对扩展是开放的、对修改是关闭的。
如何满足这样的需求?最关键的就是抽象!

OOD原则二:依赖倒置原则(DIP)

依赖倒置原则告诉我们,高层的模块不能依赖底层模块,而应该依赖抽象。
高层和底层一起都依赖抽象。
这样的好处是是抽象往往是最不容易改动的,如果抽象频繁改动,那可能说明你的抽象有问题。
抽象不易改变就决定了,无论高层改动,还是底层改动都不会对对方造成影响。这也就能保证了易扩展、更强壮的特性。

OOD原则三:Liskov替换原则(LSP)

里式替换原则的思想是子类型必须能够替换掉他们的基类型。
里式替换是结合场景来分析的,如果我们在设计的时候发现一个场景中,继承的多个类之间不能替换,那我们这个设计之间可能就存在问题,或许应该考虑不用继承而使用其他方式来实现。
解决里式替换的办法是提取共性到基类、或者通过组合的方式来解决。
由 is 转变为 has。

OOD原则四:单一职责原则(SRP)

SPR又被称为内聚性原则,一个类,只能有一个引起他变化的原因。
一个职责就是一个变化的原因。

OOD原则五:接口分离原则(ISP)

不应该强迫客户程序依赖他们不需要的方法。
ISP和SRP时相关的,都和内聚性有关。
ISP指出应该如何设计一个接口,从客户的角度出发,强调不让客户看到他们不需要的方法。

OOD原则五:迪米特法则,又称最少知道原则(DP)

一个实体应当尽量少地与其他实体之间发生相互作用,使得系统功能模块相对独立。