填充父实例

时间:2011-06-03 11:43:23

标签: c# oop

我有一个父类,如下所示:

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上填充“data”成员的实例。

目前我正在这样做:

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

我想知道是否还有其他方法。

我还在父类链接中使用了一个抽象函数:

protected abstract Data GetData();

强制子类传递实例。

哪种方法最好?有什么建议吗?

提前致谢

1 个答案:

答案 0 :(得分: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())
    {

    }
}