Я унаследовал базу кода, которая сильно использует операторы switch (C#, FWIW) для управления некоторой логикой. Это многопользовательское веб-приложение, в котором один набор операторов switch относится к тому, как отображается контент, а другой относится к ссылкам на функции, по крайней мере в большинстве случаев.Рефакторинг двух уровней операторов коммутатора
У меня есть возможность рефакторирования, поэтому я беру связанные с содержимым операторы switch и планирую создать базовый класс контента с помощью метода Render(), а затем настроить определенные дочерние элементы для типов, которые должны переопределить базовую реализацию ,
Но есть редкие случаи, когда рендеринг HTML основан на типе контента и конкретном арендаторе, и я не хочу иметь все новые методы Render() с той же самой проблемой, с которой я начинал. Есть ли образец, который может помочь в подобной ситуации?
Я вижу несколько других подобных вопросов на SO, но я не уверен, как применять ответы здесь.
Несомненно, приложение не требует жесткого кодирования всех возможных арендаторов в инструкции switch? Пожалуйста, уточните, как «арендатор» повлияет на метод Render(). –
Было всего 8 арендаторов, поэтому, когда разработчику необходимо было принять решение арендатора, он перечислил их всех. В коде содержится около десятка таких экземпляров. – Mattio
Какие решения основаны на конкретных арендаторах? И что конкретно означает «тип контента»? –