zoukankan      html  css  js  c++  java
  • 设计模式6+1大原则

    1、开闭原则

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

      理解:当业务出现新需求时,尽量通过扩展了的方式来时实现修改,原来的代码能不动就不动,因为改动原来的代码可能会出现一些未知的情况

     

    2.里氏代换原则

      定义:所有引用基类的地方必须能够透明的使用其子类对象。(子类型能够替换掉它们的父类型)

      理解:这是一种良好的规范,要求我们开发基础父类时,只可扩展父类,不可重写父类方法,(即子类直接替换父类也可以实现同样的效果),但是可以重载

         重载时:入参时子类需要比父类范围大,返回时子类需要比小(只有这样,子类替换父类时,执行的还是父类方法)

         eg:f.test(Map),c.test(HashMap);

          f.test(new HashMap())  执行父类方法

          c.test(new HashMap())  执行子类方法

     

    3、依赖倒转原则

       定义:

        1、高层模块不应该依赖低层模块,两者都应该依赖于抽象(抽象类或接口)

        2、抽象(抽象类或接口)不应该依赖于细节(具体实现类)

        3、细节(具体实现类)应该依赖抽象

      理解:调用方法的人永远只通过接口调用,不依赖具体实现。(低耦合,面向接口开发)

    4、接口隔离原则

      定义:建立单一接口,不要建立臃肿庞大的接口

      理解:一个接口不要试图能实现太多功能,而是各个类建立专用的接口,这样才能更加灵活。但是也可以太多细化,这样会导致接口过多。

    5、迪米特法则

      定义:又叫最少知道原则,一个对象应该对其他对象有最少的了解,这个应该很好理解,就是降低各模块之间的耦合一个对象应该对其他对象有最少的了解,这个应该很好理解,就是降低各模块之间的耦合

      理解:设计接口时,只暴露他人需要的接口,将其他接口隐藏,减少依赖关系,实现松耦合。

    6、单一职责原则

      定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责,应该仅有一个引起它变化的原因

      理解:单一职责的思想个人强调职责,接口隔离原则强调接口细化。这样做的好处有

        1、降低类的复杂度

        2、提高代码可读性

        3、降低变更引起的风险

    7、组合/聚合复用原则

      定义:尽量使用组合/聚合的方式,而不是继承的方式来达到复用的目的

      理解:组合/聚合方式的优点

          1、黑箱复用,代码细节不为外部所知

          2、可以不影响其他代码修改,灵活

        组合/聚合方式的缺点:

          1、可能需要管理较多的对象或者方法

        继承的优点:

          1、基类大部分功能直接继承到派生类,并且修改基类,派生类也会修改,方便

        继承的缺点:

          1、父类的所有方法都会暴露给子类,白箱复用。

          2、父类修改时,子类也会修改,不够灵活。

  • 相关阅读:
    图片上传记得要讲中文的重命名
    hihoCoder #1471 拥堵的城市
    搜狗拼音输入法的快捷键和其他应用快捷键冲突
    Codeforces #765D
    训练记录
    hihoCoder 1367 等式填空
    hihoCoder #1073 光棍节
    计算几何 I. 极角
    hihoCoder #1065 全图传送
    树的点分治专题
  • 原文地址:https://www.cnblogs.com/jaxlove-it/p/9343118.html
Copyright © 2011-2022 走看看