Android 面向对象的六大基本原则

面向对象的六大设计原则,终可以化为这几个关键字:抽象,单一职责,最小化

这也是大家经常提到的面向接口编程的重点

应用开发,难的不是完成开发工作,而是维护和升级.为了后续能够很好的维护和

升级,我们的系统需要在满足稳定性的前提下保持以下三个特性:

高可扩展性   高内聚    低耦合

一 单一职责原则 SRP

就一个类而言,应该仅有一个引起它变化的原因.

ok,简单点就是说一个类的功能和职责应该是单一的,是一组相关性很高的函数和 数据的封装.


要尽量清楚职责的划分,单一职责的划分根据每个人的经验可能都不一样


超出自己职责范围的功能提出来交给其他类

扫描二维码关注公众号,回复: 2846404 查看本文章

将一个很复杂的功能封装在一个类中是不好的,正确的是封装在一组类中


二 开闭原则 OCP

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

简单说就是,你现在写的代码在面对需求变更时能够这样轻松应对:通过继承来实 现新需求,不修改内部代码


这里的继承包括继承+实现

内部代码只因错误修改,而不能是因为新增的需求

三 里氏替换原则 LSP
所有引用基类的地方必须能够透明的使用其子类对象.

ok,简单点说,父类能出现的地方,子类就能出现,并且替换为子类也不会产生任何 异常


四 依赖倒置原则 DIP

依赖倒置原则指代了一种特定的解耦形式,使得高层次的模块不依赖于低层次模 块的实现细节,依赖模块被颠倒了.

简单说就是样的:


高层模块不应该依赖对方的低层模块,双方都应该依赖对方的抽象

抽象不依赖细节

细节应该依赖抽象


对于"倒置"这个关键字我的理解是这样的,老板只跟老板谈项目,至于怎么去实现,

那是你员工的事情,但是员工必须按照老板的安排做.

在java语言中的具体表述就是:模块间的依赖通过抽象发生,实现类之间不发生直

接的依赖关系,其依赖关系是通过抽象产生的.


五 接口隔离原则 ISP##

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

简单说就是,让客户端依赖的接口尽可能的小

这个原则是比较好理解的,抽象应该尽可能的小,没有必然联系的方法应该分别在 不同的抽象中


六 迪米特原则(少知识原则) LOD

迪米特原则又称为少知识原则

一个对象应该对其他对象有少的了解

在java中应该是这样体现的:一个类应该对自己需要耦合或调用的类知道的少,

类的内部如何实现与调用者或者依赖者没有关系.

个人理解包含两个方面:


1. 需要调用的类应该少

2. 对于调用的某个类,这个类内部,调用者应该知道的少


在MVP中,View层和Model层拒绝通信,也是符合少知识原则的,达到降低耦合效 果,同时可扩展性会大大增加 .

总结

面向对象的六大设计原则,终可以化为这几个关键字:抽象,单一职责,最小化

这也是大家经常提到的面向接口编程的重点

应用开发,难的不是完成开发工作,而是维护和升级.为了后续能够很好的维护和

升级,我们的系统需要在满足稳定性的前提下保持以下三个特性:


高可扩展性 高内聚 低耦合

猜你喜欢

转载自blog.csdn.net/as89751/article/details/81705212