相手に見せる仕様は最小限に、とか、どっかの本に書いてなかった?

setter/getterは、コード量が増えて面倒に思えるけど、実装方法を
隠蔽したまま、相手に最小限のインタフェースを提供することが出来るわけ。

まあ、集約だけしたコンテナクラスなんかつくってると、いちいち書くのが
面倒とか、委譲できない言語は駄目とか思ったりするわけだけど、
オブジェクトのあり方をしっかり考えながらを繰り返し設計・実装していけば
setter/getterがなんで必要なのか体感できるようになるかも。

外からいじるため(だけ)に作る集約オブジェクトは、setter/getter
いらない場合もあると思うよ。