Как уже написано, это зависит, но я бы, вероятно, пошел с внешним классом поддержки, который обрабатывает обновление.
На этот раз, я хотел бы знать, почему вы используете такой метод?Я полагаю, можно с уверенностью предположить, что класс не только вызывает методы установки для списка параметров, которые он получает, но я также рассмотрю этот случай
1) тривиальный метод обновления
В данном случае я имею в виду что-то вроде этого:
public update(a, b, c)
{
setA(a);
setB(b);
setC(c);
}
В этом случае я бы вообще не использовал такой метод, я бы либо определил для него макрос, либоЗвоните сеттеру сами.Но если это должен быть метод, то я бы поместил его в класс данных.
2) сложный метод обновления
Метод в этом случае не только содержитвызовы сеттеров, но он также содержит логику.Если логика представляет собой какую-то простую логику обновления свойств, я бы попытался поместить эту логику в сеттеры (в первую очередь это то, для чего они нужны), но если логика включает несколько свойств, я бы поместил эту логику во внешнийподдерживающий класс (или класс бизнес-логики, если таковой имеется), поскольку логика постоянно находится внутри классов данных.
Очень важно разработать понятный код, который можно легко понять, и я считаю, чторазмещение какой-либо логики (за исключением, скажем, логики сеттера) внутри классов данных не поможет вам достичь этого.
Редактировать
Я просто хотел бы добавить что-то еще.Где разместить такие методы, также зависит от вашего класса и того, какую цель он выполняет.Если мы говорим, например, о классах Business / Domain Object, и мы не используем Anemic Domain Model
, то эти классы могут (и должны содержать) поведение / логику.
С другой стороны, если этоКласс данных, скажем, Entity
(объекты персистентности), который также не используется в Domain Model
(сложный Domain Model
), я бы настоятельно рекомендовал не размещать в них логику.То же самое относится и к классам данных, которые «чувствуют» себя как чистые объекты данных (больше похожи на структуры), не загрязняют их, сохраняют логику снаружи.Правильный ответ: это зависит (от классов, что делает этот метод update
, какова архитектура приложения и другие особенности приложения).