介绍:
单一职责原则(SRP)就一个类而言,应该仅有一个引起它变化的原因。
软件设计真正要做的许多内容,就是发现职责并把那些职责相互分离。其实要去判断是否应该分离出类来,也不难,那就是如果你能够想到多于一个的动机去改变一个类,那么这个类就具有多于一个职责,就应该考虑类的职责分离。
在编程时,我们要在类的职责分离上多思考,做到单一职责么这样你的代码才是真正的易维护、易扩展、易复用、灵活多样。
例如:红绿灯的职责就是规范人类的交通行为、公鸡打鸣、母鸡下蛋。
单一职责原则的优点
1、降低类的复杂性,实现什么样的职责都有清晰的定义
2、提高可读性
3、提高可维护性
4、降低变更引起的风险,对系统扩展性和维护性很有帮助
例如:在控制台上设计一个计算器的程序,
运算类的代码
public class Operation
{
private double _numberA = 0;
private double _numberB = 0;
public double NumberA
{
get { return _numberA; }
set { _numberA = value; }
}
public double NumberB
{
get { return _numberB; }
set { _numberB = value; }
}
public virtual double GetResult()
{
double result = 0;
return result ;
}
}
为了体现单一职责原则,举例在运算的时候需要使用加法,则创建一个加法类。
class OperationAdd : Operation
{
public override double GetResult()
{
double result = 0;
result = NumberA + NumberB;
return result;
}
}
在加法类中,此类的功能是表示数A和数B的和。其他的运算类也遵循单一职责原则。