Учитывая инкапсуляцию объекта, должны ли получатели возвращать неизменное свойство?

Когда получатель возвращает свойство, такое как возвращениеList из других связанных объектов должен ли этот список и его объекты быть неизменными, чтобы предотвратить код за пределами класса, изменяя состояние этих объектов, без ведома основного родительского объекта?

Например, еслиContact объект, имеетgetDetails геттер, который возвращаетList изContactDetails объекты, затем любой код, вызывающий этот геттер:

can remove ContactDetail objects from that list without the Contact object knowing of it. can change each ContactDetail object without the Contact object knowing of it.

Так что же нам здесь делать? Должны ли мы просто доверять вызывающему коду и возвращать легко изменяемые объекты или идти сложным путем и создавать неизменяемый класс для каждого изменяемого класса?

Ответы на вопрос(11)

Ваш ответ на вопрос