zoukankan      html  css  js  c++  java
  • 随笔记录

    随笔记录

     

    单一职责原则
    如果一个类承担过多的职责作用时,会增加各个职责的偶合,如果当一个职责改变时会削弱或抑制其它职责作用。
    这种偶合会带来脆弱的设计,当变化发生时,会带来意想不到的破坏。

    软件设计真正要做的许多内容 就是发现职责,并把它们分离开。
    发现职责的窍门:就是如果有多于一个动机去改变这个类,那么这个类就有多于一个的职责。
    多少次迎着冷眼与嘲笑,从没有放弃过心中的理想,一刹那恍惚,若有所失的感觉。

     

    开放-封闭原则(the open-closed principle 简称OCP) :是指软件实体(类,模块,函数等)应该可以扩展,但是不可以修改。
    对于扩展是开放的,对于修改是封闭的。
    --香港回归事件

    使设计软件容易维护又不容易出问题的最好办法是多扩展,少修改

    无论模块是多么的封闭,都会存在些无法对之封闭的变化,既然不可能完全封闭,
    那就必须对于他所设计的模快应该对哪种变化封闭做出选择,他必须先猜出最有可能发生的变化种类,然后构造抽象来隔离那些变化。


    等到变化发生时立即采取行动。


    面对需求,对程序的改动是通过增加新代码进行的,而不是更改现有的代码。


    查明可能发生的变化所等待的时间越长,要创建正确的抽象就越困难


    开放-封闭原则是面向对象设计的核心所在。遵循这个原则可以带来面想对象技术所声称的巨大好处 就是可维护,可扩展,可复用,灵活性好的。
    开发人员应该仅对程序中呈现出频繁变化的那些部分做出抽象,然而 对于应用程序中的每个部分都刻意的进行抽象同样不是个好注意。


    依赖倒转:抽象不应该依赖细节,细节应该依赖于抽象。针对接口编程,不要对实现编程。

    原则:高层模块不应该依赖低层模块,两个都应该依赖于抽象。
    抽象不应该依赖细节,细节应该依赖于抽象


    里氏代换原则
    子类型必须能够替换掉它们的父类型。

    强内聚,松耦合


    依赖倒转是面向对象设计的标志,如果编写时考虑的都是如何针对抽象编程而不是针对细节编程,即程序中所有的依赖
    关系都是终止于抽象类或者接口,那就是面向对象的设计,反之就是过程化设计。

    个人理解:开放-封闭原则是面向对象的核心,对扩展开放,对修改封闭,而依赖倒转就是开放-封闭的基础。


    建造者模式要求建造的过程必须是稳定的。


    装饰模式Decorator  动态的给一个对象添加一些额外的职责,就增加功能来说装饰模式比生成子类更加灵活。
    它把每个要装饰的功能放在单独的类中,并让这个别类包装它所要装饰的对象,因此 当需要执行特殊行为时,客户代码就可以在运行时根据需要有选择的,
    按顺序的使用装饰功能包装对象。

  • 相关阅读:
    Vue内置指令
    Vue计算属性
    Ubuntu下编译Bilibili/ijkplayer
    自毁程序
    Android最大可运行内存
    Android ListView onItemClick Not Work
    Java/Android 二进制数据与String互转
    JAVA/Android Map与String的转换方法
    java中打印变量地址
    Win7 关闭Window update
  • 原文地址:https://www.cnblogs.com/mikejay1234/p/1298157.html
Copyright © 2011-2022 走看看