面向对象的基本原则

介绍面向对象的基本原则,文章不当之处,请各位大侠及时指正,立马修改~

单一职责

两个完全不一样的功能不应该放在一个类中。一个类中应该是一组相关性很高的函数、数据的封装

//TODO

开闭原则

软件中的类、模块、函数等,应该对于扩展是开放的,但是对于修改是封闭的。

因此,当软件需要变化时,我们应该尽量的通过扩展的方式来实现变化,而不是通过修改已有代码来实现,不过在现实开发中,只通过继承的方式来实现升级、维护原有系统只是一个理想化的愿景,因此,在实际开发过程中,修改原有代码、扩展代码往往是同时存在的。

//TODO

里氏替换

所有引用基类的地方必须能透明的使用子类对象。只要父类能出现的地方子类就可以出现,而且替换为子类也不会产生任何错误或异常。

//TODO

依赖倒置

模块间的依赖通过抽象发生,实现类之间不发生直接依赖关系,其他依赖关系是通过接口或抽象类产生的。

//TODO

接口隔离

类间的依赖关系应该建立在最小的接口上。

//TODO

迪米特

一个类应该自己需要耦合或调用的类知道的最少,类的内部如何实现与调用者或依赖者没关系,调用者或者依赖者只需要知道它需要的方法即可。

//TODO