В настоящее время я делаю некоторый рефакторинг (+ добавление новых функций) в некоторые из наших классов инфраструктуры. Ситуация такова, что у нас есть один (богоподобный) класс, который выполняет кучу логики, которую мы хотели бы разделить. Класс представляет собой что-то вроде правила проверки для фискальных кодов. Так что это делает проверку имен человека, даты рождения и т. Д.
То, что я собираюсь сделать, это разделить его на отдельные правила, в основном правило, которое проверяет имя человека по фискальному коду, другое по дате рождения и так далее. Для программиста в конце все выглядит примерно так же. Вместо того, чтобы вызывать огромный конструктор правила FiscalCode, он сделает что-то вроде FiscalCode.GetRules(...)
и передаст параметры здесь. GetRules(...)
затем создаст отдельные правила и передаст их обратно в виде массива. Это совершенно нормально и правильно для нас.
Так много для вашего фона. Теперь мой вопрос заключается в следующем. Класс FiscalCode (который в настоящее время является нашим могущественным бог-классом) имеет множество служебных методов, которые понадобятся большему количеству отдельных «правил-классов», которые я собираюсь создать. Что я знаю, так это то, что мне все равно понадобится класс FiscalCode для выполнения операции GetRules(...)
(для программистов это должно быть каким-то образом неизменным, а не для того, чтобы они делали что-то совершенно новое).
У меня есть два варианта:
- Создание моих новых классов правил и доступ к общедоступным статическим служебным методам класса FiscalCode
- Создать мои новые классы правил как внутренние вложенные классы класса FiscalCode s.t. У меня уже есть доступ к служебным методам (и, следовательно, нет необходимости выставлять свои служебные методы)
У меня уже есть любимый, но я бы хотел сначала услышать мнение некоторых из вас.
Thx