我試圖在SO上找到類似的問題,但沒有運氣。道歉,如果它是重複的。應該始終初始化Model類的組合屬性?
有什麼缺點實例類類型的變量在聲明時?
在大量的代表業務對象模型類的,我們有這樣的事情:
public class RateArea {...}
public class FlatRateSchedule
{
public string ScheduleID {get;set;}
public decimal MaxAmount {get;set;}
}
public class PricingData
{
private List<RateArea> rateAreaList = new List<RateArea>();
private FlatRateSchedule flatRateSchedule = new FlatRateSchedule();
public List<RateArea> RateAreaList
{
get { return rateAreaList; }
set { rateAreaList = value; }
}
public List<FlatRateSchedule> FlatRateScheduleList
{
get { return flatRateScheduleList; }
set { flatRateScheduleList = value; }
}
}
在某些時候,這個PricingData類初始化和某些屬性水合(但不總是所有屬性)。
的想法是,我們正在創建的類「空白」實例,以便沒有屬性是有史以來null
。這很方便,因爲我們在訪問它的成員之前不必檢查任何屬性是否爲空。無論物業是否保水,他們永遠不會對消費階層「空洞」。如果屬性沒有被初始化,那麼代碼在訪問屬性之前需要每次檢查null。
是一種全面的約定「一類的所有屬性都應該在任何時候都被初始化,不能爲空」非常糟糕?
除了使用一些資源來實例化和存儲這些「默認」類的實例,在零異常檢查代碼的儲蓄似乎是值得的。我們錯過了什麼嗎?
Lazy類的好主意。 – neontapir 2011-03-17 14:41:44
這減輕了我的顧慮。我們將業務對象發送到Web服務,它們是簡單的DTO類型的對象,沒有邏輯。對象在數據層中被水化,並且沒有辦法自我保護。 – Leon 2011-03-21 14:36:15