面向火箭编程之面向对象设计的六大原则

100 阅读2分钟

单一职责(Single Responsibility Principle)-代码优化的第一步

就是一个类应该只负责一个职责,术语叫:仅有一个引起其变化的原因。简单点说:一个类中应该是一组相关性很高的函数及数据的封装。

开闭原则(Open Close Principle)-让程序更稳定、更灵活

一个软件实体应当对扩展开放,对修改关闭。即软件实体应尽量在不修改原有代码的情况下进行扩展。提倡一个类一旦开发完成,后续增加新的功能就不应该通过修改这个类来完成,而是通过继承,增加新的类。

里氏替换原则(Liskov Substitution Principle)-构建扩展性更好的系统

所有引用基类(父类)的地方必须能透明地使用其子类的对象。这个原则依赖面向对象的继承特性和多态特性,这个原则我们有意无意中使用的就比较多了。因为一个优秀的程序员一定面向抽象(接口)编程的,如果你不是,说明你还有很大的进步空间。

依赖倒置原则(Dependence Inversion Principle)-让项目拥有变化的能力

抽象不应该依赖于细节,细节应当依赖于抽象。换言之,要针对接口编程,而不是针对实现编程。
关键点:

  1. 高层模块不应该依赖低层模块,两者都应该依赖其抽象 
  2. 抽象不应该依赖细节 
  3. 细节应该依赖抽象

接口隔离原则(Interface Segregation Principle)-让系统有更高的灵活性

使用多个专门的接口,而不使用单一的总接口,即客户端不应该依赖那些它不需要的接口。 

其实这个原则是很容易理解的,就是让调用者依赖的接口尽可能的小。

迪米特原则(Law of Demeter)-更好的可扩展性

又称最少知识原则(LeastKnowledge Principle, LKP) 一个软件实体应当尽可能少地与其他实体发生相互作用。 

一个类应该对自己需要调用的类知道得最少,类的内部如何实现、如何复杂都与调用者或者依赖者没关系,调用者或者依赖者只需要知道他需要的方法即可,其他的我一概不关心。