架构中的设计原则

来源:互联网 发布:d3.js 实战手册 pdf 编辑:程序博客网 时间:2024/05/18 01:07

设计原则共有7条,分别是:

  • 单一职责原则
  • 里氏替换原则
  • 依赖注入原则
  • 接口分离原则
  • 迪米特原则
  • 开闭原则
  • 优先使用组合而不是继承原则

单一职责原则(SRP)

高内聚,低耦合。每个类应该只有一个职责, 对外只能提供一种功能,而引起类变化的也应该只有一个。
好处:消除耦合,减少因需求变化引起代码僵化的难堪局面。

里氏替换原则(LSP)

在任何父类出现的地方都可以用子类来替代。同一个继承体系中的对象应该有共同的行为特征。
(一)子类必须完全实现父类的方法
(二)子类有自己的特性
(三)覆盖或者实现父类的方法时输入参数可以被放大。父类:public void hello(HashMap map) 子类:public void hello(Map map)
(四)覆写或者实现父类方法时输出结果可以被缩小

依赖注入原则(DIP)

要依赖于抽象,不要依赖于具体的实现。
(一)高层模块不应该依赖底层模块,两者都应该依赖于抽象(抽象类或接口)
(二)抽象(抽象类或接口)不应该依赖于细节(具体实现类)
(三)细节(具体实现类)应该依赖抽象

接口分离原则(ISP)

不应该强迫客户程序依赖它们不需要使用的方法。一个接口不需要提供太多的行为,一个接口应该只提供一种对外功能,不应该把所有的操作都封装在一个接口中。
(一)接口尽量小,保证一个接口只服务于一个子模块或者业务逻辑
(二)接口高内聚,接口内部声明方法都与一个子模块有关,且是这个子模块必须的
(三)接口设计是有限度的,应在接口数量和接口设计力度之间权衡

迪米特原则(LOD)

一个对象应该对其他对象尽可能少的了解。在模块之间,应当只通过接口来通信,而不理会模块的内部工作原理。

开闭原则(OCP)

一个对象对扩展开放,对修改关闭。对类的改动是通过增加代码进行的,而不是改动现有的代码。

0 0