在寫資料查詢的業務邏輯裡,經常需要對查詢條件進行合併;對於條件的構造是否有必要構造乙個新的類把條件構造分離出來提供其條件的重用性呢?首先看下**
:public
ilist
balanceslist(
[bind(convert = typeof(toenum
))]balancestate? state, datetime? from, datetime? to)
else;}
if (from != null)
exp &= balances.timecreated >= from;
else
exp &= balances.timecreated >= datetime.parse(datetime.now.toshortdatestring());
if (to != null)
exp &= balances.timecreated <= to;
return exp.list(new
region(0, 1000), balances.timecreated.desc); }
這是乙個非常典型的資料查詢邏輯,根據引數來元件查詢條件。在構造條件組合類前寫乙個介面好規範所有條件組合類。
public
inte***ce
iexpressionbuilder
直下來對上面那個資料查詢方法進行簡單的重構,把條件分離出來
:public
class
testbuiler : iexpressionbuilder
public
datetime? from
public
datetime? to
public
expression execute()
else;}
if (from != null)
exp &= balances.timecreated >= from;
else
exp &= balances.timecreated >= datetime.parse(datetime.now.toshortdatestring());
if (to != null)
exp &= balances.timecreated <= to;
return exp; }
}分離之後的邏輯方法相對就簡潔很多
public
ilist
balanceslist(
[bind(convert = typeof(toenum
))]balancestate? state, datetime? from, datetime? to)
從**簡潔性來看似乎沒有多大的改變,緊緊是提高了基於這條件復用性。在某些情況可以減少部分**的編寫
:public
ilist
balanceslist(
[bind(convert = typeof(toenum
))]balancestate? state, datetime? from, datetime? to)
對於重構的價值有時真的很難衡量,很多時候到了後期你會發現,原來的重構並沒有帶來什麼得益。
如果重構能使**變得更簡潔和方便維護那重構是必須的,但從復用性上來對**進行重構就要看情況來考慮一下,不是所有**都有很高的復用價值。
軟體是否有必要進行效能測試
序 系統規模持續增大,使用者數量呈幾何級數增長,因效能缺陷導致的事故往往影響範圍更廣,對企業信譽和品牌造成的負面衝擊更加嚴重。日本證交所事故 北京奧運票務系統事故 上海福利彩票系統事故 上海 7 18 私車牌照拍賣系統事故 這些事故時刻都在為系統的效能問題敲響警鐘,因此如何有效開展效能測試成為眾多企...
軟體是否有必要進行效能測試
序 系統規模持續增大,使用者數量呈幾何級數增長,因效能缺陷導致的事故往往影響範圍更廣,對企業信譽和品牌造成的負面衝擊更加嚴重。日本證交所事故 北京奧運票務系統事故 上海福利彩票系統事故 上海 7 18 私車牌照拍賣系統事故 這些事故時刻都在為系統的效能問題敲響警鐘,因此如何有效開展效能測試成為眾多企...
軟體是否有必要進行效能測試
序 系統規模持續增大,使用者數量呈幾何級數增長,因效能缺陷導致的事故往往影響範圍更廣,對企業信譽和品牌造成的負面衝擊更加嚴重。日本證交所事故 北京奧運票務系統事故 上海福利彩票系統事故 上海 7 18 私車牌照拍賣系統事故 這些事故時刻都在為系統的效能問題敲響警鐘,因此如何有效開展效能測試成為眾多企...