zoukankan      html  css  js  c++  java
  • 软件设计模式的原则

    简单概括一下设计模式的几个原则

    单一职责原则,里氏替换原则,依赖倒置原则,接口隔离原则,迪米特原则,开闭原则


    单一职责原则

    接口一定要做到单一职责,方法只做一件事情。


    里氏替换原则

    只要有父类出现的地方,子类一定能够替换父类出现。有子类出现的地方,父类未必就能适应。

    1. 子类必须完全实现父类的方法

    如果子类不能完整地实现父类的方法,或者父类的某些方法在子类中发生功能变化,建议断开继承关系,改用依赖、聚集、组合灯关系代替继承。

    2. 子类可以有自己的个性

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

    4. 复写或实现父类的方法时,输出结果可以被缩小


    依赖倒置原则

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

    2. 接口或抽象类不依赖于实现类

    3. 实现类依赖接口或抽象类

    基于接口的编程,而不是基于实现类的编程,不能绝对化,不超过两层以上的继承就是可以忍受的。


     接口隔离原则

    不要建立臃肿庞大的接口,和单一职责原则相结合,接口中方法尽量少。

    接口尽量小

    接口要高内聚,减少与外界交互,减少公布public方法


     迪米特法则

    最少知识原则,类之间的解耦和弱耦合

    一个对象应该对其他对象有最少的了解,只需要知道其耦合或调用的类的public方法

    只和朋友(出现在成员变量或者方法的输入参数中的类称为成员朋友类)交流

    方法尽量不引入类中不存在的对象。

    即使是朋友之间也不能有太多耦合,交流


    开闭原则

    对拓展开放,对修改关闭

    一个软件实体应该通过拓展来实现变化,而不是通过修改已有的代码实现变化。

    1. 抽象约束

    2. 元数据控制模块行为

    3. 制定项目章程

    4. 封装变化

  • 相关阅读:
    Linux 安装 PostgreSQL
    【Linux】ZeroMQ 在 centos下的安装
    Celery
    Django学习之完成数据库主从复制、读写分离和一主多从情况下的使用办法
    python异步编程之asyncio(百万并发)
    Python正则表达式中的re.S,re.M,re.I的作用
    云开发 :云原生(Cloud Native)
    极简Unity调用Android方法
    UnityShader快速上手指南(四)
    UnityShader快速上手指南(三)
  • 原文地址:https://www.cnblogs.com/xdlaoliu/p/5672309.html
Copyright © 2011-2022 走看看