Если бы у вас были классы, такие как Page, News и т. Д., Которые описывают элементы содержимого, и вы хотели реализовать возможность добавлять вложения (файлы или другие типы элементов) к этим классам, вы бы создали, например,
public List<Attachment> Attachments { get; set; }
в каждом из этих файлов, или вы бы преобразовали это в интерфейс с именем IAttachmentContainer, который имеет только это свойство
List<Attachment> Attachments { get; set; }
, а затем используете этот интерфейс со всеми этими классами (заставьте классы реализоватьинтерфейс)?
Как вы заметили, поскольку мы использовали универсальную коллекцию (список), нашему интерфейсу не нужны были какие-либо дополнительные методы, или я его пропустил?
Я мог бы получитьМногие из этих коллекций (помимо вложений также могут быть виджеты и т. д.), и я хочу, чтобы решение было как можно более чистым.Пока этот интерфейсный путь является лучшим из найденных, единственное, что меня беспокоит, это то, что эти интерфейсы в основном без методов .
По сути, я бы в итоге получил
public class News : IAttachmentContainer, IWidgetContainer, ...
Кажется ли это нормально?