通过使用Interface为类提供属性

时间:2011-06-20 15:11:56

标签: c# interface

如果您有类似页面,新闻等的类来描述内容项,并且您希望实现向这些类添加附件(文件或其他类型的项)的功能,那么您可以创建一个

public List<Attachment> Attachments { get; set; }

在每个文件中,或者你会将它重构为一个名为IAttachmentContainer的接口,该接口只有这个属性

List<Attachment> Attachments { get; set; }

然后将此接口与所有这些类一起使用(make类实现接口)?

正如您所注意到的那样,由于我们使用了通用集合(List),因此我们的界面不需要任何其他方法或者做了它而我错过了它们?

我最终可能会收到很多这些集合(除了附件,可能还有Widgets等),我希望尽可能保持解决方案的清洁。到目前为止,这种界面方式是最好的一种,唯一困扰我的是这些界面主要是无方法

基本上我最终会以

结束
public class News : IAttachmentContainer, IWidgetContainer, ...

这看起来好吗?

1 个答案:

答案 0 :(得分:2)

如果要使用像...这样的函数,似乎没问题。

ProcessAttachments(IAttachmentContainer MyObject)...

然后你可以传递任何实现附件接口的对象......

ProcessAttachments(NewsObject);