面向对象

单一职责原则 - Single Responsibility Principle

就一个类而言,应该仅有一个引起它变化的原因。简单来说,一个类中应该是一组相关性很高的函数、数据的封装。

开闭原则 - Open Close Principle

软件中的对象(类、模块、函数等)应该对扩展是开发的,但是,对于修改是封闭的。
开闭原则知道我们:当软件需要变化时,应该尽量通过扩展的方式来实现变化,而不是通过修改已有的代码来实现。

里氏替换原则 - Liskov Substitution Principle

所有引用基类的地方必须能透明地使用其子类的对象。通俗地讲,只要父类能出现的地方子类就可以出现,而且替换为子类也不会产生任何错误或异常。

面向对象语言的三大特点是继承、封装、多态,里氏替换原则就是依赖于继承、多态这两大特性。

依赖倒置原则 - Dependence Inversion Principle

一种特定的解耦形式,使得高层的模块不依赖于低层次的模块的实现细节目的。

关键点:

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

接口隔离原则 - Interface Segregation Principle

客户端不应该依赖它不需要的接口。另一种定义是:类间的依赖关系应该建立在最小的接口上。

迪米特原则 - Law of Demeter

也称为最少知识原则(Least Knowledge Principle)

一个对象应该对其他的对象有最少的了解。

Only talk to your immediate friends.

最难的不是完成应用的开发工作,而是后续的升级、维护过程中让应用系统能够拥抱变化。这就意味着在满足需求且不破坏系统稳定性的前提下保持高可扩展性、高内聚、低耦合,在经历了各版本的变更之后依然保持清晰、灵活、稳定的系统架构。

单例模式

(未完)