Когда вы возвращаете объекты из фабричного метода, вы также можете включить иерархию. Например, у моих фабрик форм есть два метода: один возвращает список фигур, добавленных в основной список, другой возвращает библиотеки форм. В то время как пользователь может определять и изменять фактические библиотеки, у меня есть автоматически созданный набор по умолчанию, который можно использовать для устранения неполадок и начальной установки. Это иерархическое.
Однако ShapeLibrary состоит из ShapeLibraryItem. В ShapeLibraryItem хранится ключ, позволяющий извлекать фигуру из списка мастер-программ. Таким образом, нажимается кнопка или элемент, он смотрит на элемент ShapeLibrary, с которым он связан. Получить ключ, использовать ключ для получения программы фигур, а затем использовать интерфейс пользовательского интерфейса для рисования экрана.
Если на вашем экране есть информация об иерархии, встроенная как одно из многих его свойств, тогда я рекомендую разделить ее на элемент иерархии. Затем может быть создан HierarchyList, который состоит из HierarchyLists ИЛИ HierarchyItem. Я бы сделал интерфейс IHierarchyItem, чтобы HierarchyLists выглядели как элемент.
Основным отличием является поведение. Когда вы щелкаете по списку HeirarchyList, открывается другой список (или расширяется и т. Д.), На экране появляется настоящий Предмет.
Таким образом, ваша сборка будет иметь два класса, помеченных одним из двух атрибутов. Один из них будет ScreenFactory, а другой - HierarchyFactory.
Обратите внимание, что вам не нужно использовать ключи, вы можете напрямую связать HierarchyItem с формой. Я использую ключи GUID, чтобы избежать соединения каждый раз. Сцепление не всегда плохо, но не всегда хорошо. Поскольку GUID фактически уникальны, он работает одинаково.
Что касается производительности, вам придется собрать сотни СБОРОВ, прежде чем вы заметите это. Помните, что вам не нужно иметь сборку для каждого экрана. Просто сгруппируйте их логически в несколько сборок, и все готово.