程式碼重構之單一職責原則在實際中使用
阿新 • • 發佈:2020-08-02
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、模組職責單一
比如一個系統,有人員基本資訊模組、考勤模組、工資管理模組,這三塊之間相互獨立又有關聯,考勤和工資都要具體到每個人,各自分工職責很清楚,而且各模組職責單一。