美文网首页
OOP 6大设计原则

OOP 6大设计原则

作者: 122604 | 来源:发表于2017-02-23 16:28 被阅读0次

OCP(open close principle)

开闭原则:类、模块、函数等对扩展开放,对修改关闭;

SRP(single responsibility principle)

职责单一原则:有且只有一个原因引起类的变更;

LSP(liskov substitution principle)

里氏替换原则:所有的已用基类的地方必须能透明的使用其子类的对象;

通俗点讲:只要父类能出现的地方子类就可以出现,而且替换为子类也不产生任何异常错误,

反之则不然。这主要体现在,我们经常使用抽象类/基类做为方法参数,

具体使用哪个子类作为参数传入进去,由调用者决定。

这条原则包含以下几个方面:

子类必须完全实现父类的方法

子类可以有自己的个性外观(属性)和行为(方法)

覆盖或者实现父类方法时,参数可以被放大。即父类的某个方法参数为HashMap时,子类参数可以是HashMap,也可以是Map或者更大

覆盖或者实现父类的方法时,返回结果可以被缩小。即父类的某个方法返回类型是Map,子类可以是Map,也可以是HashMap或者更小。

DIP(dependence inversion principle)

依赖倒置原则:高层模块不要依赖低层模块,所以依赖都应该是抽象的,抽象不应该依赖于具体细节而,具体细节应该依赖于抽象

底层模块:不可分割的原子逻辑就是低层模块

高层模块:低层模块的组装合成后就是高层模块

抽象:Java中体现为基类,抽象类,接口,而不单指抽象类

细节:体现为子类,实现类

通俗点讲,该原则包含以下几点要素:

模块间的依赖应该通过抽象发生,具体实现类之间不应该建立依赖关系

接口或者抽象类不依赖于实现类,否则就失去了抽象的意义

实现类依赖于接口或者抽象类

总结起来,一句话:”面向接口编程“。

ISP(Interface-Segregation Principle)

接口隔离原则:客户端不应该依赖它不需要的接口;类间的依赖应该建立在最小的接口上

通俗点讲:使用接口时应该建立单一接口,不要建立臃肿庞大的接口,尽量给调用者提供专门的接口,而非多功能接口。

LoD(Low of Demeter)

迪米特法则:又称最少知识原则(Least Knowledge Principle, LKP),一个对象应该对其他对象有最少的了解。

通俗点讲:一个类应该对自己需要耦合或者调用的类知道越少越好,被耦合或者调用的类内部和我没有关系,我不需要的东西你就别public了吧。

迪米特法则包含以下几点要素:

只和朋友类交流:只耦合该耦合的类

朋友间也是有距离的:减少不该public的方法,向外提供一个简洁的访问

自家的方法就自己创建:只要该方法不会增加内部的负担,也不会增加类间耦合

相关文章

  • OOP设计原则

    高内聚,低耦合的基本原则 https://wenku.baidu.com/view/7e9b1872001ca30...

  • OOP 设计原则

    OOPL的三大机制: – 封装,隐藏内部实现– 继承,复用现有代码– 多态,改写对象行为 OOP 六大设计原则 S...

  • javascript开放-封闭原则-NBA常规赛结束

    在面向对象程序(OOP)设计中,开放-封闭原则(OCP)是最重要的原则,一个oop的程序具有良好的设计,往往说明它...

  • (1)面向对象的六大原则

    什么是面向对象原则 面向对象原则——oop(object Oriented Principle),遵循原则设计程序...

  • OOP的设计原则

    开始写文章了!

  • OOP 6大设计原则

    OCP(open close principle) 开闭原则:类、模块、函数等对扩展开放,对修改关闭; SRP(s...

  • Java面试总结

    1.什么是OOP、AOP OOP即面向对象编程OOP三大特征:封装、继承、多态OOP五大原则:单一职责原则 (Si...

  • 控制反转之依赖注入VS依赖查找

    控制反转概述: 控制反转(Inversion of Control,缩写为IoC),是OOP中的一种设计原则,可以...

  • OOP原则

    设计模式遵循的一般原则: 1.开-闭原则(Open-Closed Principle, OCP):一个软件实体应当...

  • OOP 五大设计原则

    1、概述 OOP(Object-oriented programming),指面向对象程序设计。也是目前主流的程序...

网友评论

      本文标题:OOP 6大设计原则

      本文链接:https://www.haomeiwen.com/subject/kmybwttx.html