代码重构之单一职责原则在实际中使用
1、单行代码职责单一
private double GetSubtotalAmount(doube singlePrice,int productCount) { return singlePrice*productCount; }
上文中的return语句行代码职责不单一,将其改为:
private double GetSubtotalAmount(doube singlePrice,int productCount)
{
double subtotalAmount=singlePrice*productCount;
return subtotalAmount;
}
2、单个变量职责单一
private string GetFirstName(string name) { name = name.Substring(0, 6); return name; }
上文中的参数变量name被当作返回值使用,改为:
private string GetFirstName(string 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、模块职责单一
比如一个系统,有人员基本信息模块、考勤模块、工资管理模块,这三块之间相互独立又有关联,考勤和工资都要具体到每个人,各自分工职责很清楚,而且各模块职责单一。
本文来自博客园,作者:King-DA,转载请注明原文链接:https://www.cnblogs.com/qingmuchuanqi48/p/13419999.html