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

    刚接触设计模式的时候我就被它的优雅给吸引了,发现原来代码还可以这样写,当时的我入了迷。

    记得看的第一本设计模式的书籍叫《大话设计模式》,当时的我还不能完全理解里面的思想,但并不妨碍我被它的优雅给吸引,

    这本书我看了3遍,直到现在感觉还是有点乱,在这整理一下自己的思路,加深一下自己的理解。

    类的设计原则:


    开闭原则:在面对对象设计的中,应该遵循对扩展开放,对修改关闭。

    开闭原则实现方法:

    为了满足开闭原则,我们这软件设计中应该将不变的部分抽象出来,定义成不变的接口(或抽象类),模块之间调用通过抽象接口进行,这样即使实现层发生变化,

    调用代码也不需要改变,接口是不变的是可以复用的,简单的说就是基于接口(抽象)编程


    单一职责原则:在类的设计过程中,只能让一个类有且只有一个职责。

    为什么一个类不能多余一个以上的职责?

    当一个类拥有多个职责的时候,也就意味着有多个原因会引起该类的改变,而这种变化会影响到该类不同职责的使用者:

    1.当类的一个职责需要包含其他外部类的时候,该类的另外一个职责的使用者就不得不保函这个外部类

    2.当类的一个职责改变,而该类的另外一个职责的使用者也不得不重新编译这个类

    职责划分

    单一职责其实从字面去理解非常容易,但在实际的设计过程中,并不是那么容易对职责进行划分。

    首先我尝试用一句话来概括这个类的职责,在语句中不要包括或、且、和之类的字眼,然后考虑这个类是否存在多个原因引起他的改变


    接口分离原则:接口的设计应该遵循最小接口原则,不要把用户不需要的方法放到同一个接口里


    依赖倒置原则:高级模块不应该依赖低级模块,应该依赖抽象,抽象不应该依赖于细节,细节应该依赖抽象


    里氏替换原则:子类应该可以替换掉父类出现的任何地方,或者说我们将代码中所有出现父类的地方替换成子类,代码仍然可以正常运行

  • 相关阅读:
    $().each() 与 $.each()区别,以及 jquery ajax 应用
    sql 随机获取数据
    Content type 'text/plain;charset=UTF-8' not supported
    mvn 安装jar到本地仓库
    idea 插件(字母顺序)
    adb连接逍遥模拟器,并自动设置和清除代理
    git仓库重新创建master分支
    js 日期格式化
    java 去除url中指定参数
    okhttp使用post出现:RFC 7230 and RFC 3986错误
  • 原文地址:https://www.cnblogs.com/xiaodo0/p/3892562.html
Copyright © 2011-2022 走看看