美文网首页
程序设计的6大原则

程序设计的6大原则

作者: Liuzjdev | 来源:发表于2018-12-04 18:16 被阅读10次

单一职责原则

  • 所谓职责是指类变化的原因。如果一个类有多于一个的动机被改变,那么这个类就具有多于一个的职责。而单一职责原则就是指一个类或者模块应该有且只有一个改变的原因。
  • 一个类,只有一个引起它变化的原因。应该只有一个职责。每一个职责都是变化的一个轴线,如果一个类有一个以上的职责,这些职责就耦合在了一起。这会导致脆弱的设计。当一个职责发生变化时,可能会影响其它的职责。另外,多个职责耦合在一起,会影响复用性。例如:要实现逻辑和界面的分离。
  • 此原则的核心就是高内聚低耦合。

里氏替换原则

  • 里氏替换原则(Liskov Substitution Principle LSP)面向对象设计的基本原则之一。 里氏替换原则中说,任何基类可以出现的地方,子类一定可以出现。 LSP是继承复用的基石,只有当衍生类可以替换掉基类,软件单位的功能不受到影响时,基类才能真正被复用,而衍生类也能够在基类的基础上增加新的行为。
  • 派生类(子类)对象可以在程式中代替其基类(超类)对象。

依赖倒置原则

  • 依赖倒置原则(Dependence Inversion Principle)是程序要依赖于抽象接口,不要依赖于具体实现。 简单的说就是要求对抽象进行编程,不要对实现进行编程,这样就降低了客户与实现模块间的耦合。
  • 高层次的模块不应该依赖于低层次的模块,两者都应该依赖于抽象接口。
  • 抽象接口不应该依赖于具体实现。而具体实现则应该依赖于抽象接口。

接口隔离原则

  • 使用多个专门的接口比使用单一的总接口要好。
  • 一个类对另外一个类的依赖性应当是建立在最小的接口上的。
  • 一个接口代表一个角色,不应当将不同的角色都交给一个接口。没有关系的接口合并在一起,形成一个臃肿的大接口,这是对角色和接口的污染。
  • “不应该强迫客户依赖于它们不用的方法。接口属于客户,不属于它所在的类层次结构。”这个说得很明白了,再通俗点说,不要强迫客户使用它们不用的方法,如果强迫用户使用它们不使用的方法,那么这些客户就会面临由于这些不使用的方法的改变所带来的改变。

开闭原则

  • 开闭原则中“开”,是指对于组件功能的扩展是开放的,是允许对其进行功能扩展的。
  • 开闭原则中“闭”,是指对于原有代码的修改是封闭的,即修改原有的代码对外部的使用是透明的。
  • 在面向对象编程领域中,开闭原则规定“软件中的对象(类,模块,函数等等)应该对于扩展是开放的,但是对于修改是封闭的”,这意味着一个实体是允许在不改变它的源代码的前提下变更它的行为。该特性在产品化的环境中是特别有价值的,在这种环境中,改变源代码需要代码审查,单元测试以及诸如此类的用以确保产品使用质量的过程。遵循这种原则的代码在扩展时并不发生改变,因此无需上述的过程。

迪米特法则

  • 迪米特法则可以简单说成:talk only to your immediate friends。 对于OOD来说,又被解释为下面几种方式:一个软件实体应当尽可能少的与其他实体发生相互作用。每一个软件单位对其他的单位都只有最少的知识,而且局限于那些与本单位密切相关的软件单位。
  • 迪米特法则的初衷在于降低类之间的耦合。由于每个类尽量减少对其他类的依赖,因此,很容易使得系统的功能模块功能独立,相互之间不存在(或很少有)依赖关系。
  • 迪米特法则不希望类之间建立直接的联系。如果真的有需要建立联系,也希望能通过它的友元类来转达。因此,应用迪米特法则有可能造成的一个后果就是:系统中存在大量的中介类,这些类之所以存在完全是为了传递类之间的相互调用关系——这在一定程度上增加了系统的复杂度。
  • 有兴趣可以研究一下设计模式的门面模式(Facade)和中介模式(Mediator),都是迪米特法则应用的例子。

以上内容均来自百度百科及维基百科,感谢观看

相关文章

  • 设计模式

    程序设计的6大原则[https://www.jianshu.com/p/4a00410b2a47] 对象之间的几种...

  • 程序设计的六大原则

    今天面试被问到程序设计的六大原则,一脸懵逼,什么程序设计六大原则,程序设计还有原则,还六大下面这篇文章介绍的挺全,...

  • 程序设计的6大原则

    程序设计的6大原则: 单一职责原则里氏替换原则依赖倒置原则接口隔离原则迪米特法则开闭原则 从根本学好,理解为什么要...

  • 程序设计的6大原则

    单一职责原则 所谓职责是指类变化的原因。如果一个类有多于一个的动机被改变,那么这个类就具有多于一个的职责。而单一职...

  • 程序设计的6大原则

    单一职责原则:类的职责单一 【封装性】 开放封闭原则:修改封闭,扩展放开 里氏替换原则:子类完全可以替换父类 依赖...

  • 程序设计6大原则

    https://www.cnblogs.com/mgbert/p/3937289.html http://www....

  • 程序设计6大原则

    注:本文抄录至设计模式六大原则 设计模式六大原则(1):单一职责原则 定义:不要存在多于一个导致类变更的原因。通俗...

  • SOLID

    面向对象程序设计5大原则 单一职责原则(Single Responsibility Principle) 开放封闭...

  • 设计模式六大原则

    简介 6大原则是良好的软件工程设计思想。传统的23种设计模式,就是这6大原则在具体场景的应用。6大原则是本,23种...

  • 程序设计几大原则

    一、单一职责原则(SRP) 单一职责原则(SRP)用于指导我们,在对功能划分到具体的类中的时候,要保证具有高内聚性...

网友评论

      本文标题:程序设计的6大原则

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