6大设计原则之1--单一职责原则

单一职责:Single Responsibility Principle(RSP),应该且仅有一个原因引起类的变更。(There should never be more than one reason for a class to change).

那么RSP有什么好处呢:

  • 类的复杂性降低,实现什么都有明确清晰的定义

  • 可读性提高,复杂性降低了,可读性当然就高了

  • 可维护性提高,可读性提高了,维护也就容易了

  • 改变引起的风险降低.如果单一职责定义的好,一个接口的改动只会影响相应的实现类,不会影响到其他接口,这对系统的可扩展性和可维护性都有很大帮助。

单一职责原则很好理解,但是难在“职责”的定义上,原因在于“职责”并没有一个可量化的标准,一个类到底要负责哪些职责?这些职责要如何细分?细分之后的职责是否都要有对应的接口或类?这些都要从实际的项目去考虑,要考虑可变因素和不可变因素,还要考虑收益成本率,有些设计如果但从“学究”理论去考虑是有问题的,但是具体到现实的应用可能就足够了。

单一职责原则提出了编写程序的一个标准,用“职责”或“变化原因”来衡量接口或类设计的是否优良,但是“职责”和“变化原因”都是不可度量的,因项目而异,因环境而异

对于接口,我们设计的时候要单一,但是对于类,就要综合考虑了。生搬硬套单一原则会使类的数量剧增,给维护带来非常多的麻烦。而且过分细分类的职责也会人为的增加系统的复杂度。

单一职责原则,适用于接口和类,同样也适用于方法,让方法尽可能简单。

你可能感兴趣的:(6大设计原则之1--单一职责原则)