When a getter returns a property, such as returning a List of other related objects, should that list and it\'s objects be immutable to prevent code outside of
Depends on the context, really. But generally, yes, one should write as defensive code as possible (returning array copies, returning readonly wrappers around collections etc.). In any case, it should be clearly documented.