Допустим, у вас есть веб-сайт, позволяющий создать учетную запись с тремя различными владельцами учетных записей.Каждая страница входа для владельца является отдельной страницей aspx.Первый человек имеет совсем другие бизнес-правила, чем второй и третий владельцы.У первого также будет больше полей, и для них потребуются другие, но не для других.Я использую шаблон MVP (Model View Presenter) .
Я могу сделать либо
A.Создайте три отдельных представления и попросите их всех использовать одного докладчика, который имеет специальные операторы IF или операторы Switch, чтобы выяснить, имеете ли вы дело с определенным владельцем и, если да, действовать определенным образом.
ИЛИ
B.Создайте три отдельных представления и пусть все они будут использовать своего собственного Presenter, который будет просто выполнять то, что он предназначен для этого владельца, без каких-либо необходимых операторов IF.
Я чувствую конфликт, потому что A кажется правильным, но можетзапутаться во всех утверждениях IF везде, и люди могут удалить или изменить их, не осознавая последствий.Хотя B кажется слишком большим дублированием кода и выглядит ужасно.Есть ли точка, в которой вы говорите, что эти классы слишком разные, чтобы делиться ими, и слишком много операторов IF для исключений?