zoukankan      html  css  js  c++  java
  • 00_设计模式6大原则

    【六大原则总览】

    1.单一职责原则

    2.里氏替换原则

    3.依赖导致原则

    4.接口隔离原则

    5.迪米特法则

    6.开闭原则

    【原则一:单一职责原则】

      英文全称:Single Responsibility Principle,简称SRP。

      要求一个接口或类只有一个原因引起变化,就是一个接口或类只有一个原则,它就负责一件事情。

    [ 好处 ] 

    * 类的复杂性降低,实现什么职责都有清晰明确的定义;

    * 可读性提高,复杂性降低。

    * 可维护性提高。

    * 变更引起的风险降低。如果接口的定义职责做的很好,一个接口修改只对相应的实现类有影响,对其它接口没有影响,这对系统的扩展性和可维护性非常大的帮助。

    【原则二:里氏替换原则】

    首先分析一下继承的优点缺点;

    [ 继承的优点 ]

    * 代码共享,减少创建类的工作量,每个子类都拥有父类的方法和属性。

    * 提高了代码的重用性。

    * 子类可以形似父类,但又异于父类。

    * 提高代码的扩展性,许多开源框架的扩展接口都是通过继承父类来完成的。

    * 提高产品或项目的开放性。

    [ 继承的缺点 ]

    * 继承是侵入性的。只要继承,子类就必须拥有父类的所有属性和方法。

    * 降低代码的灵活性,子类必须拥有父类的属性和方法,给子类添加了约束。

    * 增强了代码的耦合性,当父类的常量、变量或方法修改时,就要考虑子类的修改。

    [ 里氏替换原则的定义 ]

    只要父类能出现的地方,子类就可以出现,而且替换给子类就不会出现任何的错误或异常,使用者不需要知道是子类还是父类,但是反过来是不可以的,有子类出现的地方,父类未必就可以。

    [ 里氏替换原则的四层含义 ]

    * 子类必须实现父类的方法。

    * 子类必须有自己的个性

    * 覆盖或实现或父类的方法时输入参数可以被放大。

    * 覆写或实现父类的方法时输出结果可以被缩小。

    【原则三:依赖倒置原则】

    [ 在java语言中的表现 ] 

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

    * 接口或抽象类不依赖其实现类。

    * 实现类依赖接口或抽象类。

    【原则四:接口隔离原则】

    接口隔离原则要求接口中的方法尽量少。(单一职责要求类和接口职责单一,注重的是职责,是业务逻辑上的划分)

    【原则五:迪米特法则】

    也称为最少知识原则,一个对象应该对其它对象由最少的了解,即一个类应该对自己需要耦合或调用的类知道的最少。

    【原则六:开闭原则】

    软件实体,应该对扩展开放,对修改关闭,含义就是一个原件实体应该通过扩展来实现变化,而不是通过修改已有的代码来实现变化。

  • 相关阅读:
    bzoj1303: [CQOI2009]中位数图
    bzoj1778: [Usaco2010 Hol]Dotp 驱逐猪猡(概率DP+高斯消元)
    bzoj1013: [JSOI2008]球形空间产生器sphere(高斯消元)
    bzoj1857: [Scoi2010]传送带(三分套三分)
    LibreOJ #6221. 幂数 !(数论+dfs+剪枝)
    bzoj1968: [Ahoi2005]COMMON 约数研究(数论)
    bzoj1015: [JSOI2008]星球大战starwar(并查集)
    SRM16 B-2(DP)
    数据库的增、删、改、查 (CURD)
    软件开发
  • 原文地址:https://www.cnblogs.com/HigginCui/p/6195318.html
Copyright © 2011-2022 走看看