|
|
|
|
|
by tigershark
2612 days ago
|
|
It’s a different semantic in my opinion.
Even in mutable objects it’s better to have setters that act only on the field that they are supposed to mutate and do absolutely nothing else.
If you need a notification you can raise an event and then the interested parties will react accordingly.
By mutating directly an unrelated field, or even worse, call an unrelated method that brings complete havoc to the current object state, in the setter you are opening yourself to an incredible amount of pain. |
|
Now, if you want to argue that an object probably shouldn't be written in the way that such things are necessary, you're probably right. And if you want to argue that it should "just set the one field in spirit" (that is, that it should do what it has to to set the field, but not do unrelated things), I would definitely agree with you. But it's not quite as simple as "only ever just set the one field".