软件设计中的五大原则
一、 SRP The Single Responsibility Principle 单一职责原则
- 陈述:就一个类而言,应该只有一个导致其变化的原因
- 分析:
一个职责就是一个变化的轴线
一个类如果承担的职责过多,就等于将这些职责耦合在一起。一个职责的变化可能会虚弱或者抑止这个类完成其它职责的能力
–多职责将导致脆弱性的臭味
什么是职责?职责就是变化的原因。
二、OCP, 开发封闭原则
- 陈述:
软件实体(类、模块、函数等)应该是可以扩展的,同时还可以是不必修改的,更确切的说,函数实体应该:
(1)对扩展是开放的
当应用的需求变化时,我们可以对模块进行扩展,使其具有满足改变的新的行为——即,我们可以改变模块的功能
(2)对更改是封闭的
对模块进行扩展时,不必改动已有的源代码或二进制代码。
- 分析:
世界是变化的(而且变化很快),软件是对现实的抽象
软件必须能够扩展