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

    1.

    2.

    八大设计原则:

    1.依赖倒置原则:

    1)高层模块(稳定)不应该依赖于低层模块(变化),二者应该都依赖于抽象(稳定);

    2)抽象(稳定)不应该依赖于实现细节(变化),实现细节(变化)应该依赖于抽象(稳定)。

    2.开闭原则:

    1)对扩展开放,对修改关闭。

    2)类模块应该是可扩展的,但是不可修改。

    3.单一职责原则:

    1)一个类应该仅有一个引起它变化的原因。

    2)变化的方向隐含着类的责任。

     4.里氏替换原则:

    1)子类必须能够替换基类(IS - A)。

    2)   继承表达类型抽象。

    5.接口隔离原则:
    1)不要强迫客户依赖它们不需要的方法。

    2)接口应该小而完备。

    实现思想就是 不要把所有 的方法都public出去,有些方法写成私有。因为你一旦都public出去,就有可能导致客户对它产生依赖。当你改这个方法的时候就会对依赖它的客户产生影响。

    6.优先使用对象组合而不是类继承:

    1)类继承是“白箱操作” ,使用对象组合是“黑箱操作”

    2)继承在某种程度上破坏了封装性,子类父类耦合度高。

    3)对象组合只要求被组合对象有良好定义的接口,耦合度低。

    7.封装变化点:

    1)封装一般认为是封装数据和代码,但是封装还有更高层面上的应用就是封装变化点,一侧变化,一侧不会受到影响。

    8.针对接口编程,而不是针对实现编程。

    1)不将变量类型声明为某个具体类型,而是声明为某个接口(这并不绝对,比如String,Vector,int这些不可避免的要用,但是比如说我要用到各种形状,那么我用Shape编程,而不是用具体的Circle或者Rect编程,这个原则其实跟依赖倒置原则比较相辅相成。)。

    2)客户不需要知道对象的类型,只需要知道对象所具有的接口。

    3)减少系统中各部分的依赖关系,从而实现高内聚,松耦合。

    产业强盛的标识:接口标准化。

  • 相关阅读:
    题解 P2812 【校园网络【[USACO]Network of Schools加强版】】
    拓展卢卡斯定理(伪)
    [洛谷P3807] 【模板】卢卡斯定理
    一道使用Fibonnaci数列通项公式的趣味题目
    [洛谷P3292] [SCOI2016]幸运数字
    [洛谷P3812] 【模板】线性基
    [洛谷P3857] [TJOI2008]彩灯
    2019.06.17课件:[洛谷P1310]表达式的值 题解
    常数PK系列汇总
    关于BFS和dijkstra(2019.04.20)
  • 原文地址:https://www.cnblogs.com/aliceQin/p/9941996.html
Copyright © 2011-2022 走看看