Скажем, у вас есть абстрактный базовый класс Task
, который является задачей, которую может выполнить пользователь. Есть две конкретные задачи: SimpleTask
и ChecklistTask
. Что если вы хотите, чтобы пользовательский интерфейс (ASP.NET) отображал другой элемент управления в зависимости от типа задания?
В WPF вы можете использовать DataTemplates, но как это сделать в ASP.NET? Кстати, мы пытаемся избежать заявления о переключении. У нас есть другие фрагменты кода с длинным оператором switch, которые начинались с малого, но со временем росли. Вот чего мы пытаемся избежать.
Есть ли шаблон дизайна для таких вещей? Мы не можем позволить Task
классам «знать» классы пользовательского интерфейса, потому что они являются классами домена. Или оператор switch является лучшим, что мы можем сделать (при необходимости, скрытый в отдельном «фабричном» классе)?