• 单一职责原则,开-闭原则,依赖倒置原则


    《大话设计模式》连续三章讲述了三个原则,把这些重要语录摘抄下来,供我日后好好理解。

     

    单一职责原则(Simple Response Principle):就一个类而言,应该仅有一个引起他变化的原因。

    当一个类承担了过多的职责,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其它职责的能力。这种耦合会导致脆弱的设计,当设计变化时,设计会遭受到意想不到的破坏。

    软件设计真正要做的事,就是发现职责,并把这些职责相互分离。

    判断是否职责单一的方法:如果你想到多于一个动机去改变一个类,这个类就具有多于一个的职责,就应该对类进行职责分离。

     

    开放-封闭原则:软件实体(类,模块,函数等),应该可以扩展,但不可修改。

    即:对于扩展是开放的(Open for extension),对于更改是封闭的(Closed for modification)。

    一个较好的实践方式是等到变化发生时立即采取行动。在我们最初编写代码时,假设变化不会发生。当变化发生时,我们就创建抽象来隔离以后发生的同类变化

     

    依赖倒转原则:抽象不应依赖于细节,细节应该依赖于抽象。

    • 高层模块不应依赖与低层模块。两个都应该依赖抽象。
    • 抽象不应依赖于细节。细节应该依赖于抽象。

    高层模块不应依赖于底层模块==高层不应依赖调用低层模块,我的理解是高层依赖于低层的接口,这样能做到高层类的复用。

     

    里氏代换原则:子类别必须能够替换掉他的父类别。

    即:把父类都替换为他的子类,程序的行为没有变化。

    只有当子类可以替换掉父类,软件单位的功能不受影响时,父类才能真正被复用,而子类也能够在父类的基础上增加新的行为。

    程序所有的依赖关系都终止于抽象类或接口,那就是面向对象设计,反之就是过程化设计。

  • 相关阅读:
    信号量Semaphore
    回环屏障CyclicBarrier
    线程同步器CountDownLatch
    vue 类似微信通讯录格式实现网易云音乐的歌手字母查询
    vue使用element的多个表格使用v-if切换,使用 :key="Math.random()" 后,表格排序出现问题
    vue使用pinyin的npm包将文字转为大写首字母字母
    vue中使用better-scroll滚动无效
    vue 移动端 图片懒加载 lazy
    表格配合keepalive缓存
    在保存数据之后,不知道什么时候清空数据,不如试试beforeRouteEnter
  • 原文地址:https://www.cnblogs.com/baiduligang/p/4247315.html
Copyright © 2020-2023  润新知