前端之家收集整理的这篇文章主要介绍了
代码重构之单一职责原则在实际中使用,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
单一职责原则:Single Responsibility Principle,以下举例说明我在代码重构方面对单一职责原则的使用。
1、单行代码职责单一
private double GetSubtotalAmount(doube singlePrice,int productCount)
{
return singlePrice*productCount;
}
上文中的return语句行代码职责不单一,将其改为:
double subtotalAmount=singlePrice*productCount;
return subtotalAmount;
2、单个变量职责单一
private string GetFirstName(string name)
{
name = name.Substring(0,6);
return name;
}
上文中的参数变量name被当作返回值使用,改为:
string firstName= name.Substring(0,6);
return firstName;
3、方法职责单一
private void OnPageLoad()
{
LoadCountryData();
}
private void LoadCountryData()
{
//... Load Data
//Set Item Index=0;
}
将上文中的注释部分//Set Item Index=0提取为一个方法:
private void SetCountryListIndex(int countryIndex)
{
//Set Item Index=0;
}
这样在OnPageLoad里面改为
private void OnPageLoad()
{
LoadCountryData();
SetCountryListIndex(0);
}
4、类或接口或结构体职责单一,以类为例说明
class UserInfor
{
public string Name { get; set; }
public int Age { get; set; }
public string Address { get; set; }
public void UpdateAddress(string newAddress)
{
}
}
可改为:
class UserInfor
{
public string Name { get; set; }
public int Age { get; set; }
public string Address { get; set; }
}
class UserBehavior
{
public void UpdateAddress(UserInfor user)
{
}
}
5、模块职责单一
比如一个系统,有人员基本信息模块、考勤模块、工资管理模块,这三块之间相互独立又有关联,考勤和工资都要具体到每个人,各自分工职责很清楚,而且各模块职责单一。 以上是我在工作中对单一职责的理解和使用,在此抛砖引玉,欢迎斧正批评。