C#设计模式系列:单一职责原则(Single Responsibility Principle)
2014-06-23 16:46
337 查看
1、单一职责原则的核心思想
一个类应该有且只有一个变化的原因。
2、为什么要引入单一职责原则
单一职责原则将不同的职责分离到单独的类,每一个职责都是一个变化的中心。当需求变化时,这个变化将通过更改职责相关的类来体现。如果一个类拥有多于一个的职责,则这些职责就耦合到在了一起,那么就会有多于一个原因来导致这个类的变化。对于某一职责的更改可能会损害类满足其他耦合职责的能力。这样职责的耦合会导致设计的脆弱,以至于当职责发生更改时产生无法预期的破坏。
在SRP中,把职责定义为变化的原因。
3、单一职责原则的优点
1>、可以降低类的复杂度,一个类只负责一项职责,其逻辑肯定要比负责多项职责简单的多;
2>、提高类的可读性,提高系统的可维护性;
3>、变更引起的风险降低,变更是必然的,如果单一职责原则遵守的好,当修改一个功能时,可以显著降低对其他功能的影响。
4、单一职责原则实现
单一职责原则关键点要求接口的职责单一,从而实现该接口的类的职责单一。
5、单一职责原则重构
业务规则和持久化两个职责应该分开,业务规则往往会频繁变化,而持久化的方式却不会如此频繁的变化,并且变化的原因也是完全不同的。
对于违反这一原则的类需要进行重构,应用Façade模式或Proxy模式分离职责。
6、使用单一职责原则的注意点
1>、单一职责最难划分的就是职责。
2>、单一职责原则提出了一个编写程序的标准,用职责和变化原因来衡量接口或类设计的是否优良,但是职责和变化原因都是不可度量的,因项目而异,因环境而异。
3>、接口一定要做到单一职责,类的设计尽量做到只有一个原因引起变化。
一个类应该有且只有一个变化的原因。
2、为什么要引入单一职责原则
单一职责原则将不同的职责分离到单独的类,每一个职责都是一个变化的中心。当需求变化时,这个变化将通过更改职责相关的类来体现。如果一个类拥有多于一个的职责,则这些职责就耦合到在了一起,那么就会有多于一个原因来导致这个类的变化。对于某一职责的更改可能会损害类满足其他耦合职责的能力。这样职责的耦合会导致设计的脆弱,以至于当职责发生更改时产生无法预期的破坏。
在SRP中,把职责定义为变化的原因。
3、单一职责原则的优点
1>、可以降低类的复杂度,一个类只负责一项职责,其逻辑肯定要比负责多项职责简单的多;
2>、提高类的可读性,提高系统的可维护性;
3>、变更引起的风险降低,变更是必然的,如果单一职责原则遵守的好,当修改一个功能时,可以显著降低对其他功能的影响。
4、单一职责原则实现
单一职责原则关键点要求接口的职责单一,从而实现该接口的类的职责单一。
5、单一职责原则重构
业务规则和持久化两个职责应该分开,业务规则往往会频繁变化,而持久化的方式却不会如此频繁的变化,并且变化的原因也是完全不同的。
对于违反这一原则的类需要进行重构,应用Façade模式或Proxy模式分离职责。
6、使用单一职责原则的注意点
1>、单一职责最难划分的就是职责。
2>、单一职责原则提出了一个编写程序的标准,用职责和变化原因来衡量接口或类设计的是否优良,但是职责和变化原因都是不可度量的,因项目而异,因环境而异。
3>、接口一定要做到单一职责,类的设计尽量做到只有一个原因引起变化。
相关文章推荐
- 设计模式六大设计原则之单一职责原则(Single Responsibility Principle)
- 单一职责原则 (Single Responsibility Principle,SRP)
- 软件设计原则(二)单一职责原则 -Single Responsibility Principle
- 设计原则——单一职责原则(Single Responsibility Principle)
- 单一职责原则(Single Responsibility Principle SRP)
- 单一职责原则(single responsibility principle,SRP)
- 单一职责原则 Single Responsibility Principle
- 设计模式中的设计原则之单一职责原则(Single Responsibility Principle - SRP)
- 【设计模式六大原则1】单一职责原则(Single Responsibility Principle)
- 单一职责原则(SRP - Single Responsibility Principle)
- 单一职责原则(Single Responsibility Principle)
- [设计模式原则]单一职责原则(Single Responsibility Principle,SRP)
- Java设计模式之单一职责原则(Single Responsibility Principle)
- OO设计原则 — Single Responsibility Principle:OO设计的SRP单一职责原则
- 单一职责原则(Single Responsibility Principle)
- 设计模式原则篇:(1)单一职责原则--Single Responsibility Principle
- 单一职责原则(Single Responsibility Principle)
- Single Responsibility Principle (SRP) - OO设计的单一职责原则
- 设计模式六大原则(1)单一职责原则(Single Responsibility Principle)
- IOS设计模式的六大设计原则之单一职责原则(SRP,Single Responsibility Principle)