Волшебный GET и SET для вопроса инициализации объекта - PullRequest
1 голос
/ 18 февраля 2011

Я хотел бы знать лучшие практики для DDD, ориентированного на классы.

Поскольку я выполняю проверку домена в пользовательских установщиках с именем ChangeX (строка x), меня могут подтолкнуть использовать это как свойство.

пример публичной виртуальной строки {get;приватный набор;}

Тем не менее, это не очень хорошо, поскольку он не позволяет мне использовать функцию инициализации объекта, такую ​​как:

new Object {Example = "Some example"}

Итак, почему бы не передать пользовательский набор в набор свойств?вот так

публичная виртуальная строка Example {get {return Example;} set {ChangeExample (value);}}

Может ли это привести к каким-либо проблемам?это против лучших практик?

Спасибо.

Ответы [ 2 ]

2 голосов
/ 19 февраля 2011

Реальная проблема здесь заключается в использовании сеттеров как таковых. Зачем они тебе нужны?

Когда вы используете сеттеры, вы теряете изоляцию - вы можете изменять состояние объектов извне без их ведома. Это приводит к процессуальному коду.

Напротив, вы должны попросить объекты сделать что-то (а не просто изменить их состояние), что в конечном итоге может привести к изменению их собственного состояния.

0 голосов
/ 18 февраля 2011

Я думаю, что это решение хорошо.Одна из причин иметь сеттеры - убедиться, что в ваших нижележащих полях никогда не содержатся неправильные значения.

...