如果您有类似页面,新闻等的类来描述内容项,并且您希望实现向这些类添加附件(文件或其他类型的项)的功能,那么您可以创建一个
public List<Attachment> Attachments { get; set; }
在每个文件中,或者你会将它重构为一个名为IAttachmentContainer的接口,该接口只有这个属性
List<Attachment> Attachments { get; set; }
然后将此接口与所有这些类一起使用(make类实现接口)?
正如您所注意到的那样,由于我们使用了通用集合(List),因此我们的界面不需要任何其他方法或者做了它而我错过了它们?
我最终可能会收到很多这些集合(除了附件,可能还有Widgets等),我希望尽可能保持解决方案的清洁。到目前为止,这种界面方式是最好的一种,唯一困扰我的是这些界面主要是无方法。
基本上我最终会以
结束public class News : IAttachmentContainer, IWidgetContainer, ...
这看起来好吗?
答案 0 :(得分:2)
如果要使用像...这样的函数,似乎没问题。
ProcessAttachments(IAttachmentContainer MyObject)...
然后你可以传递任何实现附件接口的对象......
ProcessAttachments(NewsObject);