LINUX.ORG.RU

История изменений

Исправление iZEN, (текущая версия) :

Правильным является поддержка свойств на уровне языка, но в Java до такого почему то за 20 лет не доросли.

Нет же.

Свойства, геттеры, сеттеры являются антипаттернами изменения состояния объекта. В масштабе использования (Use-Case) выбранного объекта они серьёзно усложняют логику приложения, практически всегда предполагая синхронизацию двух и более свойств (ACID на ряд методов), которые не могут быть изменены без взаимосогласования.

Таким образом, лучше избегать get/set/property без реальной нужды в них. Везде использовать методы-функции, при вызове которых объект не «деградирует», всегда находится в детерминированном состоянии и не нуждается в дополнительном «исследовании» (в инспекции в широком смысле) своих свойств.

Исходная версия iZEN, :

Правильным является поддержка свойств на уровне языка, но в Java до такого почему то за 20 лет не доросли.

Свойства, геттеры, сеттеры являются антипаатернами изменения состояния объекта. В масштабе использования (Use-Case) выбранного объекта они серьёзно усложняют логику приложения, практически всегда предполагая синхронизацию двух и более свойств (ACID на ряд методов), которые не могут быть изменены без взаимосогласования.

Таким образом, лучше избегать get/set/property без реальной нужды в них. Везде использовать методы-функции, при вызове которых объект не «деградирует», всегда находится в детерминированном состоянии и не нуждается в дополнительном «исследовании» (в инспекции в широком смысле) своих свойств.