第一篇 面向对象设计的六大原则

《第一篇 面向对象设计的六大原则》

1 单一职责原则(Simple Responsibility Principle)   

    一句话:不要将一个类设计成类似于“上帝类”的东西

    单一原则很简单,就是将一组相关性很高的函数、数据封装到一个类中。换句话说,一个类应该有职责单一。

2 开闭原则(Open-Closed Principle)

                          一句话:一个软件实体应该对扩展开放,对修改关闭。

开闭原则理解起来也不复杂,就是一个类应该对于扩展是开放的,但是对于修改是封闭的。我们知道,在开放的app或者是系统中,经常需要升级、维护等,这就要对原来的代码进行修改,可是修改时容易破坏原有的系统,甚至带来一些新的难以发现的BUG。因此,我们在一开始编写代码时,就应该注意尽量通过扩展的方式实现新的功能,而不是通过修改已有的代码实现。

3 里氏替换原则(Liskov Substitution Principle )

    一句话:所有父类的对象都可以使用子类对象替换(多态的体现)。

里氏替换原则的定义为:所有引用基类的地方必须能透明地使用其子类对象。定义看起来很抽象,其实,很容易理解,本质上就是说,要好好利用继承和多态。简单地说,就是以父类的形式声明的变量(或形参),赋值为任何继承于这个父类的子类后不影响程序的执行。

4 依赖倒置原则(Dependence Inversion Principle)

依赖倒置主要是实现解耦,使得高层次的模块不依赖于低层次模块的具体实现细节。怎么去理解它呢,我们需要知道几个关键点:

(1)高层模块不应该依赖底层模块(具体实现),二者都应该依赖其抽象(抽象类或接口)

(2)抽象不应该依赖细节(废话,抽象类跟接口肯定不依赖具体的实现了)

(3)细节应该依赖于抽象(同样废话,具体实现类肯定要依赖其继承的抽象类或接口)

其实,在我们用的Java语言中,抽象就是指接口或者抽象类,二者都是不能直接被实例化;细节就是实现类,实现接口或者继承抽象类而产生的类,就是细节。使用Java语言描述就简单了:就是各个模块之间相互传递的参数声明为抽象类型,而不是声明为具体的实现类;

5 接口隔离原则()

接口隔离原则定义:类之间的依赖关系应该建立在最小的接口上。其原则是将非常庞大的、臃肿的接口拆分成更小的更具体的接口。

6 迪米特原则(最少知识原则 Least Knowledge Principle)

                                一句话:强调类之间的解耦

描述的原则:如果两个类不必直接通信,那么这两个类就不应当发生直接的相互作用。如果一个类需要调用另一个类的方法的话,可一通过第三方转发这个调用。

    原文作者:侃树
    原文地址: https://www.jianshu.com/p/0da685b3f1f8
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞