【发布时间】:2012-11-01 05:51:52
【问题描述】:
想询问组合而不是继承在这里是否有意义,如果是这样的话,这是一个很好的方法。
我有一个这样的界面:
public interface IUser
{
string FirstName {get; set}
string LastName {get; set}
}
还有一个“高级”用户界面,它具有与 IUser 相同的字段,但有一些附加功能。电话号码、电子邮件地址等。
这个IAdvancedUser 接口应该从IUser 继承并添加它自己的属性,还是应该在其中包含IUser 的实例,并使用setter 注入来实例化该成员,这也有意义吗?如果是后者,是否有一些 .Net/C# 习语在这些情况下运行良好——例如,通过包装或其他方法将 IUser 成员公开为 IAdvancedUser 成员?
这些是 DTO 对象,其中没有方法,只有属性。
【问题讨论】:
标签: c# inheritance composition