zoukankan      html  css  js  c++  java
  • 设计原则

    六大原则

    • 单一职责原则告诉我们实现类要职责单一;
    • 里氏替换原则告诉我们不要破坏继承关系;
    • 依赖倒置原则告诉我们要面向接口编程;
    • 接口隔离原则告诉我们在设计接口的时候要精简单一;
    • 迪米特法则告诉我们要降低耦合;
    • 开闭原则告诉我们要对扩展开放,对修改封闭;

    Open Closed Principle(OCP):开闭原则

    • Open for extension,Closed for modification:当软件需求变化时,尽量通过扩展软件实体的行为来实现变化,而不是通过修改已有的代码来实现.
    • 用抽象构建架构,用实现扩展细节.因为抽象灵活性好,适应性广,只要抽象的合理,可以基本保证架构的稳定.在软件中易变的细节,我们用从抽象派生的实现类来进行扩展,当软件需要发生变化时,我们只需要根据需求重新派生一个实现类来扩展就可以了,当然前提是抽象要合理,要对需求的变更有前瞻性和预见性.

    Single responsibility principle(SRP):单一功能原则

    • 核心:一个类应该有且只有一个变化的原因.
    • 单一职责原则将不同的职责分离到单独的类,每一个职责都是一个变化的中心.

    Liskov Substitution Principle(LSP): 里氏替换原则

    • 定义1:所有引用基类的地方必须能透明地使用其子类的对象.

    • 定义2:If for each object o1 of type S there is an object o2 of type T such that for all programs P defined in terms of T,the behavior of P is unchanged when o1 is substituted for o2 then S is a subtype of T.

    • 四层含义:
      1.子类必须完全实现父类的抽象方法,但不能覆盖父类的非抽象方法.
      2.子类中可以增加自己特有的方法.
      3.当子类的方法重载父类的方法时,方法的前置条件(方法的形参)要比父类方法的输入参数要更宽松;
      4.当子类的方法实现父类的抽象方法时,方法的后置条件(方法的返回值)要比父类更严格.

    Dependency Inversion Principle(DIP): 抽象倒置原则

    • 定义:High level modules should not depend upon low level modules, Both should depend upon abstractions.Abstractions should not depend upon details.Details should depend upon abstracts.
    • 高层模块不应该依赖低层模块,两者都应该依赖抽象
    • 抽象不应该依赖细节
    • 细节应该依赖抽象

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

    • 定义:客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上.
    • 含义:一个类对另一个类的依赖应该建立在最小的接口上;一个接口代表一个角色,不应该将不同的角色都交给一个接口,因为这样可能会形成一个臃肿的大接口;
      不应该强迫客户依赖他们从来不用的方法.

    Law of Demeter(LoD):迪米特法则

    • 定义:又叫做最少知识原则,也就是说,一个对象应当对其他对象尽可能少的了解,不和陌生人说话.(Talk only to your immediate friends.)

    • 解释:
      一个软件实体应当尽可能少的与其他实体发生相互作用.每个软件单位对其他的单位都只有最少的知识,而且局限于那些与本单位密切相关的软件单位.迪米特法则的初衷在于降低类之间的耦合,由于每个类尽量减少对其他类的依赖,因此很容易使得系统的功能模块独立,相互之间不存在(或很少有)依赖关系.

  • 相关阅读:
    如何在EXCEL SHEET中 动态添加控件
    和菜鸟一起学OK6410之ADC模块
    和菜鸟一起学证券投资之消费物价指数CPI
    和菜鸟一起学证券投资之股市常见概念公式2
    作为软件工程师,你必须知道的20个常识
    和菜鸟一起学c++之虚函数
    和菜鸟一起学单片机之入门级led流水灯
    在国内各大软件下载网站上,“万能数据库查询分析器”已更新至 2.02 版本
    和菜鸟一起学证券投资之股市简单财务分析
    和菜鸟一起学OK6410之蜂鸣器buzzer字符驱动
  • 原文地址:https://www.cnblogs.com/o-v-o/p/10132171.html
Copyright © 2011-2022 走看看