Название может быть непростым для понимания, но мне кажется, что это основной вопрос дизайна при работе со смарт-моделями.
У меня есть иерархия объектов модели, которые представляют разные типы документов.
Скажем, у меня есть представление с разными кнопками, каждая из которых открывает документ базовой объектной модели. Когда я нажимаю на кнопку, мне нужно отобразить представление, реализация контроллера которого зависит только от базового класса объекта модели. Как мне получить эту реализацию?
(Это может быть в реализации кнопки, но тогда возникает вопрос, как мне получить реализацию кнопки)
Должно ли это быть фабрика, которая принимает в качестве входных данных тип моей модели и возвращает мой контроллер вида? Должна ли это быть моя модель, которая знает, как построить свой контроллер (кажется грязным?)? Должен ли я использовать композицию? Что-то еще?
Надеюсь, я достаточно ясен. Я немного борюсь с этим!