Я ищу несколько советов о том, как реорганизовать код, который имеет дело с комбинациями нескольких логических переменных, а не со сложными и бесконечными условными операторами.
Например, если у нас есть Customer
с 3 логическими свойствами говорят, isBlocked
, isInternational
, isPremium
. Как я могу написать чистый, поддерживаемый и расширяемый код для разных типов пользователей? (например, международный премиум-пользователь, заблокированный в течение последних 7 дней) и т. д.
Я пытался использовать разные классы для каждого типа, но список растет экспоненциально при добавлении новых свойств. Я также пробовал использовать композиции, такие как PremiumUserHelper
, BlockedUserHelper
и т.д., но поскольку мы имеем дело с комбинациями различных свойств, этот шаблон бесполезен.
Может ли кто-нибудь указать мне на некоторые стили / шаблоны кода, которые помогут мне в этом случае?