Я пытаюсь определить, что если (до того, как я начну) в новом проекте, я могу выбрать несколько подходящих шаблонов, которые помогут в разработке по мере усложнения проекта.
Сценарий
Иметь приложение, которое рисует «простые» линии на экране. Идеально заключенный в «движок рендеринга», который я могу упаковать в Silverlight, демонстрационные приложения WPF и т. Д.
Мне также требуется приложение-редактор, которое использует движок рендеринга для выполнения большей части отображения, однако предоставляет дополнительные функции, такие как контрольные точки для перемещения линий по экрану и диалоговые окна для изменения цвета линий и т. Д.
Цель
Чтобы механизм визуализации был специфицирован и эффективен. Редактор должен иметь возможность «добавить» дополнительную функциональность (то есть отображение контрольных точек) в объекты, используемые механизмом визуализации, или в сам механизм визуализации. Я не хочу кодировать какой-либо специфический для редактора код в движок рендеринга.
Мои мысли пока
Я подумываю об использовании шаблона инкапсуляции / шаблона для объектов, которые будут использоваться механизмом рендеринга, так или иначе позволяя приложению-редактору предоставлять класс для объекта, который «привязывает» функциональность к контрольным точкам ( и, например, обработка событий для перемещения контрольных точек).
Мне нравится эта идея в том, что движку рендеринга никогда не нужно знать о среде, в которой он работает. Редактор может быть значительно изменен без необходимости менять движок рендеринга (надеюсь).
Но ....
Возможно, я ошибаюсь, если кто-то может увидеть какие-либо подводные камни или если у них есть опыт поиска более эффективных способов решения этой проблемы, я бы с удовольствием их услышал!