SRP是(Single-Responsibility Principle)"单一职责原则"的简称: 一个类只有一个促使它变化的原因。所谓职责,我们可以理解它为功能,就是设计的这个类功能应该只有一个,而不是两个或更多。也可以理解为引用变化的原因,当你发现有两个变化会要求我们修改这个类,那么你就要考虑撤分这个类了。"就像每个学生都要上多门课程,如果"“就像一个人身兼数职,而这些事情相互关联不大,,甚至有冲突,那他就无法很好的解决这些职责,应该分到不同的人身上去做才对。”
internal class Employee { public string Name; public string FirstName; public string LastName; public string Sex; //... }
将Name,FirstName,LastName封装.
internal class EmployeeName
{
public string Name;
public string FirstName;
public string LastName;
}
改建好后Employee类如下:
internal class Employee
{
public EmployeeName Name;
public string Sex;
internal class EmployeeName
{
public string Name;
public string FirstName;
public string LastName;
}
}
三、SRP优点:
2、在没有变化征兆的情况下应用SRP或其他原则是不明智的;
3、在需求实际发生变化时就应该应用SRP等原则来重构代码;
4、使用测试驱动开发会迫使我们在设计出现臭味之前分离不合理代码;
5、如果测试不能迫使职责分离,僵化性和脆弱性的臭味会变得很强烈,那就应该用Facade或Proxy模式对代码重构;