博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
六大设计原则快速记忆SOLID
阅读量:6425 次
发布时间:2019-06-23

本文共 1317 字,大约阅读时间需要 4 分钟。

hot3.png

常见的面向对象设计的原则,可以简化为SOLID原则,坚固slidi的软件需要遵循的原则。

1、单一职责原则SRP(Single Responsibility Principle)

定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。

2、开放-关闭原则OCP(Open-Close Principle)

定义:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。

3、里氏替换原则LSP(Liskov Substitution Priciple)

通俗的定义:所有引用基类的地方必须能透明地使用其子类的对象。

更通俗的定义:子类可以扩展父类的功能,但不能改变父类原有的功能。 

  • 子类可以实现父类的抽象方法,但是不能覆盖父类的非抽象方法。

  • 子类中可以增加自己特有的方法。

  • 当子类覆盖或实现父类的方法时,方法的前置条件(即方法的形参)要比父类方法的输入参数更宽松。

  • 当子类的方法实现父类的抽象方法时,方法的后置条件(即方法的返回值)要比父类更严格。

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

所谓依赖倒置原则(Dependence Inversion Principle)就是要依赖于抽象,不要依赖于具体。简单的说就是要求对抽象进行编程,不要对实现进行编程,这样就降低了客户与实现模块间的耦合。

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

接口或抽象类不依赖于实现类; 实现类依赖接口或抽象类。

5、接口隔离原则ISP(Interface Segregation Principle)

接口隔离原则(ISP)拆分非常庞大臃肿的接口成为更小的和更具体的接口,这样客户将会只需要知道他们感兴趣的方法。这种缩小的接口也被称为角色接口(role interfaces)。[2]接口隔离原则(ISP)的目的是系统解开耦合,从而容易重构,更改和重新部署。接口隔离原则是在SOLID (面向对象设计)中五个面向对象设计(OOD)的原则之一,类似于在GRASP (面向对象设计)中的高内聚性。      

使用多个专门的接口比使用单一的总接口要好。

一个类对另外一个类的依赖性应当是建立在最小的接口上的。

一个接口代表一个角色,不应当将不同的角色都交给一个接口。没有关系的接口合并在一起,形成一个臃肿的大接口,这是对角色和接口的污染。

6、最少知识原则LKP(Least Knowledge Principle)

迪米特法则(Law of Demeter)又叫作最少知道原则(Least Knowledge Principle 简写LKP),就是说一个对象应当对其他对象有尽可能少的了解,不和陌生人说话。英文简写为: LoD.

门面模式和调停者模式实际上就是迪米特法则的应用。

广义的迪米特法则在类的设计上的体现:

优先考虑将一个类设置成不变类。

尽量降低一个类的访问权限。

谨慎使用Serializable。

尽量降低成员的访问权限。

转载于:https://my.oschina.net/ydsakyclguozi/blog/198946

你可能感兴趣的文章
MySQL的变量查看和设置
查看>>
android onNewIntent
查看>>
XML特殊符号
查看>>
系统时间——ntpd
查看>>
监测超过特定内存阀值进程并结束
查看>>
Linux Centos 查询信息
查看>>
android adb命令
查看>>
python “双”稀疏矩阵转换为最小联通量“单”矩阵
查看>>
揭秘天猫双11背后:20万商家600万张海报,背后只有一个鹿班
查看>>
重置mysq root密码脚本
查看>>
MHA配置参数
查看>>
深入理解Lock
查看>>
vim的块选择
查看>>
HTML --块
查看>>
一个不错的loading效果
查看>>
Debian允许root用户登录
查看>>
linux的文件系统
查看>>
上云利器,K8S应用编排设计器之快到极致
查看>>
袋鼠云服务案例系列 | 从DB2到MySQL,某传统金融平台的互联网转型之路
查看>>
RealServer配置脚本
查看>>