美文网首页
设计模式之禅——设计原则

设计模式之禅——设计原则

作者: 瓶子裏的鱼 | 来源:发表于2017-12-14 19:20 被阅读0次

    单一职责原则

    summary
    功能就是功能
    属性就是属性

    里氏替换原则

    summary
    一个函数中,父类能够出现的地方,其子类也可以出现,且该函数所表达的功能不变。

    依赖倒置原则

    1 、模块间的依赖通过抽象发生,实现类之间不能发生直接的依赖关系,其依赖关系通过接口或者抽象类产生。

    • 那继承跟这个又有什么关系

    2、实现类依赖接口或者抽象类
    3、接口或者抽象类不依赖实现类

    summary
    抽象:接口,抽象类
    细节:实现类
    面向接口编程-————面向对象设计的精髓之一

    接口隔离原则

    1、根据业务需求,让一个接口只服务于一个子模块或者业务逻辑。
    2、理解不够透彻

    summary

    迪米特法则(最少知识原则)

    1、一个对象应该对其他对象有最少的了解。(高内聚,低耦合)
    2、场景案例
    老师叫体育委员清点队伍人数。
    老师只需要跟体育委员接触,体育委员需要跟队伍和老师接触。而队伍只需要跟体育委员接触。

    summary
    原则:如果一个方法放在本类中,既不增加类间关系,也不对类产生负面影响,那就放在本类吧。

    开闭原则

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

    • 软件实体:软件、产品中按照一定逻辑划分出来的模块;抽象和类;方法;
      2、场景案例
      书店、书(书名,价格,作者)。
      需求变更,书店对书本的价格进行打折。
      思考:如何修改价格
      1、直接修改这个价格==》原价格不见了,原来的逻辑也无法变通。
      2、修改接口,因为定义的对象是一个接口 IBook,所以依然无法实现对之前逻辑的支持。
      3、采用扩展。即继承原理的book类,通过重写获得价格的方法获得打折后的价格。(有个坑,如果这个时候,我需要显示原价格和当前价格,以便于比较。这个时候也可以采用扩展,同时新增方法,但是就无法支撑IBook这个接口了。)

    3、如何使用开闭原则
    1、抽象约束
    采用抽象或者接口类实现约束一组可能变化的行为,并且能够实现对扩展的开放。??
    2、元数据控制模块行为
    减轻开发痛苦,那么尽量使用元数据来控制程序行为,减少重复开发。

    • 元数据:
      用来默哀回溯环境和数据的数据,通俗地说就是配置参数。??

    3、制定项目章程
    团队中,建立项目章程是非常重要的,因为章程中指定所有人必须遵守的约定,对项目来说,约定优于配置。
    4、封装变化
    第一,将相同的变化封装到一个接口或者抽象中。
    第二,将不同的变化封装到不同的接口或者抽象类中,不应该有两个不同的变化出现在同一个接口或者抽象类中。??

    相关文章

      网友评论

          本文标题:设计模式之禅——设计原则

          本文链接:https://www.haomeiwen.com/subject/uoclwxtx.html