面向对象的六大原则

单一职责

定义:

一个类只干一个事情,实现一个功能。

作用:

这样可以让类不那么臃肿,同时提高了代码的可读性,同时降低了耦合性。

注意:

关于怎么划分“职责”,没有固定的标准,视具体的情况而定。但是也有一些指导的原则,比如两个不相干的功能不能放在一个类里面,一个类里面应该是一些功能性高度相关的函数跟数据。

开闭原则

定义:

程序对于修改是封闭的,对于扩展是开放的。只有但产生错误的时候,才回去修改一个类的源码,当新增加特性或者功能的时候,通过新建一个类的方式来实现。新建的类可以通过继承原有的类来具有原来的类的行为跟属性。

作用:

开闭原则主要是针对软件迭代升级的过程中修改原来的代码的时候可能会将某些新的错误加入到已经经过测试的代码中,为了避免破坏原来系统的稳定性,通过扩展的方式来实现迭代升级,当然,这只是最理想的情况,一般情况下,是将修改跟扩展结合起来实现软件的迭代升级。

注意:

并不是完全不能尽兴修改,当原有的框架跟代码都不能适应新的需求环境的时候,要及时进行重构,至于选择修改还是扩展的方式视具体的应用场景而定。

里氏替换

定义:

能使父类的地方肯定能使用子类进行替换。

做用:

里氏替换跟后面的依赖倒置原则都提高了代码的扩展性。

依赖倒置

定义:

依赖倒置原则指代了一种解耦的原则,高层次的模块不依赖于低层次的实现。

依赖倒置原则的几个关键点:

  • 高层次的模块不依赖于低层次的实现,两者都依赖于抽象;
  • 抽象不依赖于细节;
  • 细节依赖于抽象;

Java里的抽象指的是抽象类跟接口,细节就是实现了接口或者继承了抽象类的子类。高层次的模块就是指调用者,底层次的模块就是指各种实现类。

简单点说,依赖导致原则简单来说其实就是指面向接口编程。

作用:

依赖倒置原则,提高了代码的扩展性。

例子

自定义ImageLoader的set方法,设置缓存方式;

接口隔离原则

定义:

接口隔离原则一个定义是指客户端不依赖于不相关的接口,另一个定义依赖建立在最小的接口上。
我只需要关注我需要的那部分内容其他的内容我不关心,你也没有必要提供给我,这跟后面的迪米特原则的思想是一致的。
其实就是指接口的最小化,将大的臃肿的接口进行细分,拆分成更小更具体的接口。

作用:

接口隔离原理降低了系统的耦合性,是系统更容易重构更改跟部署。

前面的五个原则是面向对象编程的五大基本原则,也成为SOLID原则。

迪米特原则

定义:

最小知识原则,一个类对于他需要依赖或者调用的类只需要知道他所需要的方法就可以了,至于内部如何实现的则不需要知道也没有必要知道。两个类的关系越密切,耦合越大,一个类产生变化的时候,对另一个类产生的影响就越大。

迪米特原则的另一个解释是只与直接的朋友通信。什么是直接的朋友?每个对象必然跟其他的对象有耦合的关系,两个对象之间耦合就产生朋友关系。

作用:

降低了代码的耦合性。当一个类发生改变的时候,对其他类的影响降到了最低。

例子

租户,房源信息,中介。

当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器