美文网首页
面向对象基本原则

面向对象基本原则

作者: 穆秦楚 | 来源:发表于2018-09-22 19:35 被阅读0次

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

    是指一个类的功能要单一,不能包罗万象。如同一个人一样,分配的工作不能太多,否则一天到晚虽然忙忙碌碌的,但效率却高不起来具体业务逻辑处理层

    开放封闭原则OCP(Open-Close Principle)

    一个模块在扩展性方面应该是开放的而在更改性方面应该是封闭的。比如:一个网络模块,原来只服务端功能,而现在要加入客户端功能,那么应当在不用修改服务端功能代码的前提下,就能够增加客户端功能的实现代码,这要求在设计之初,就应当将服务端和客户端分开,公共部分抽象出来。

    里式替换原则LSP(the Liskov Substitution Principle LSP)

    子类应当可以替换父类并出现在父类能够出现的任何地方。比如:公司搞年度晚会,所有员工可以参加抽奖,那么不管是老员工还是新员工,也不管是总部员工还是外派员工,都应当可以参加抽奖,否则这公司就不和谐了。

    依赖倒置原则DIP(the Dependency Inversion Principle DIP)

    抽象不应该依赖于细节,细节应当依赖于抽象。换言之,要针对接口编程,而不是针对实现编程。具体依赖抽象,上层依赖下层。假设B是较A低的模块,但B需要使用到A的功能,这个时候,B不应当直接使用A中的具体类: 而应当由B定义一抽象接口,并由A来实现这个抽象接口,B只使用这个抽象接口:这样就达到了依赖倒置的目的,B也解除了对A的依赖,反过来是A依赖于B定义的抽象接口。通过上层模块难以避免依赖下层模块,假如B也直接依赖A的实现,那么就可能 造成循环依赖。一个常见的问题就是编译A模块时需要直接包含到B模块的cpp文件,而编译B时同样要直接包含到A的cpp文件。

    接口分离原则ISP(the Interface Segregation Principle ISP)

    模块间要通过抽象接口隔离开,而不是通过具体的类强耦合起来。

    迪米特法则\最少知识原则(Law of Demeter, LoD)

    一个软件实体应当尽可能少地与其他实体发生相互作用。

    合成复用原则 (Composite Reuse Principle, CRP)

    尽量使用对象组合,而不是继承来达到复用的目的。

    https://blog.csdn.net/rainjm/article/details/78642206

    基本原则概述
    单一职责原则
    开闭原则
    里氏代换原则
    依赖倒转原则
    接口隔离原则
    迪米特法则
    合成复用原则
    如何在类图中标注设计模式(一)

    相关文章

      网友评论

          本文标题:面向对象基本原则

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