2011-06-03 132 views
0

我有一個父類,像這樣:填充父實例

public abstract class Business<T> : IBusiness<T> where T : Entity 
{ 
    protected Data<T> data; 

    public IEnumerable<T> Select(DataContext db) 
    { 
     return data.Select(db); 
    } 
} 

,我需要填充的孩子CLAS「數據」成員的實例。

目前,我這樣做:

public class UserBusiness : Business<User> 
{ 
    public UserBusiness() 
    { 
     data = new UserData(); 
    } 
} 

我不知道是否還有其他一些方法。

我也在父類鏈路此使用的抽象功能:

保護抽象數據的GetData();

強制子類傳遞實例。

哪種方法最好?任何建議?

預先感謝

+0

使用依賴注入框架(例如Ninject)。將所有的孩子和數據類註冊到框架中,框架將負責爲您建立依賴關係。 – 2011-06-03 12:07:38

回答

2

創建抽象構造:

public abstract class Business<T> : IBusiness<T> where T : Entity 
{ 
    protected Data<T> data; 

    Business<T>(T _data) 
    { 
     data = _data 
    } 
    public IEnumerable<T> Select(DataContext db) 
    { 
     return data.Select(db); 
    } 
} 

然後調用它在派生構造:

public class UserBusiness : Business<User> 
{ 
    public UserBusiness() : 
     base (new UserData()) 
    { 

    } 
}