zoukankan      html  css  js  c++  java
  • 面向对象设计原则

    一、开放封闭原则(Open Close Principle)

    Software entities (classes, modules, functions, etc.) should be open for extension, but closed for modification.

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

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

    A class should have a single responsibility, where a responsibility is nothing but a reason to change.

    即: 一个类只允许有一个职责,即只有一个导致该类变更的原因。

    三、依赖倒置原则(Dependency Inversion Principle)

    • Depend upon Abstractions. Do not depend upon concretions.
    • Abstractions should not depend upon details. Details should depend upon abstractions
    • High-level modules should not depend on low-level modules. Both should depend on abstractions.

    即:

    • 依赖抽象,而不是依赖实现。
    • 抽象不应该依赖细节;细节应该依赖抽象。
    • 高层模块不能依赖低层模块,二者都应该依赖抽象。

    四、接口分离原则(Interface Segregation Principle)

    Many client specific interfaces are better than one general purpose interface.

    即: 多个特定的客户端接口要好于一个通用性的总接口。

    五、迪米特法则(Law of Demeter)

    You only ask for objects which you directly need.

    即: 一个对象应该对尽可能少的对象有接触,也就是只接触那些真正需要接触的对象。

    迪米特法则也叫做最少知道原则(Least Know Principle), 一个类应该只和它的成员变量, 方法的输入, 返回参数中的类作交流, 而不应该引入其他的类(间接交流)。

    六、里氏替换原则(Liskov Substitution Principle)

    In a computer program, if S is a subtype of T, then objects of type T may be replaced with objects of type S (i.e. an object of type T may be substituted with any object of a subtype S) without altering any of the desirable properties of the program (correctness, task performed, etc.)

    即: 所有引用基类的地方必须能透明地使用其子类的对象, 也就是说, 子类对象可以替换其父类对象, 而程序执行效果不变。

  • 相关阅读:
    Meten Special Activities II
    Meten Special Activities II
    Meten Special Activities II
    Meten Special Activities II
    Meten Special Activities
    Meten Special Activities
    Meten Special Activities
    Meten Special Activities
    Meten Special Activities
    冒泡排序和选择排序
  • 原文地址:https://www.cnblogs.com/fanlumaster/p/14010405.html
Copyright © 2011-2022 走看看