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

    1. 单一职责原则
    2. 开闭原则(对扩展开放,对修改关闭)
    3. 接口隔离原则(使用多个接口)
    4. 依赖倒置原则(细节依赖抽象)
    5. 迪米特法则(解耦)
    6. 里氏替换原则(尽量不要修改父类)

    单一职责原则

    一个类只负责一项职责。 

    里氏替换原则

    问题由来:有一功能P1,由类A完成。现需要将功能P1进行扩展,扩展后的功能为P,其中P由原有功能P1与新功能P2组成。新功能P由类A的子类B来完成,则子类B在完成新功能P2的同时,有可能会导致原有功能P1发生故障。

    解决方案:当使用继承时,遵循里氏替换原则。类B继承类A时,除添加新的方法完成新增功能P2外,尽量不要重写父类A的方法,也尽量不要重载父类A的方法。

    依赖倒置原则

    高层模块不应该依赖低层模块,二者都应该依赖其抽象

    抽象不应该依赖细节,细节应该依赖抽象。

    问题由来:类A直接依赖类B,假如要将类A改为依赖类C,则必须通过修改类A的代码来达成。这种场景下,类A一般是高层模块,负责复杂的业务逻辑;类B和类C是低层模块,负责基本的原子操作;假如修改类A,会给程序带来不必要的风险。

    解决方案:将类A修改为依赖接口I,类B和类C各自实现接口I,类A通过接口I间接与类B或者类C发生联系,则会大大降低修改类A的几率。

    接口隔离原则

    问题由来:类A通过接口I依赖类B,类C通过接口I依赖类D,如果接口I对于类A和类B来说不是最小接口,则类B和类D必须去实现他们不需要的方法。

    解决方案:将臃肿的接口I拆分为独立的几个接口,类A和类C分别与他们需要的接口建立依赖关系。也就是采用接口隔离原则。

    迪米特法则

    一个对象应该对其他对象保持最少的了解。(降低耦合)

    问题由来:类与类之间的关系越密切,耦合度越大,当一个类发生改变时,对另一个类的影响也越大。

    解决方案:尽量降低类与类之间的耦合。

    开闭原则

    一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。

    问题由来:在软件的生命周期内,因为变化、升级和维护等原因需要对软件原有代码进行修改时,可能会给旧代码中引入错误,也可能会使我们不得不对整个功能进行重构,并且需要原有代码经过重新测试。

    解决方案:当软件需要变化时,尽量通过扩展软件实体的行为来实现变化,而不是通过修改已有的代码来实现变化。

     

    参考博客:http://www.uml.org.cn/sjms/201211023.asp

     

     

     

     

  • 相关阅读:
    微擎框架 手册
    微擎框架小程序 uitl
    微擎框架小程序 入口
    微擎框架 全局
    python——函数
    python基础-文件操作
    基本数据类型-列表_元组_字典
    基本数据类型-(字符串_数字_列表_元组_字典_集合)
    python列表基础操作
    Python字符串基本操作
  • 原文地址:https://www.cnblogs.com/fanfusuzi/p/6821943.html
Copyright © 2011-2022 走看看