アラン・ケイからの次の引用に出くわしたとき、私は以前に記事を読んでいました:
「多くのいわゆるオブジェクト指向言語にはセッターがあり、オブジェクトにセッターがある場合は、それをデータ構造に戻します。」
この記事は、これがベストプラクティスではなく、長期的に開発するアプリケーションに損害を与える可能性があることを示唆しています。
私はC、Java、PHP、Rubyなどの経験を持つCompSciの学生です。したがって、概念と実践としてのOOPにかなり精通していますが、決して専門家ではありません。
私の質問はこれに要約されると思います:
OOプログラムを作成するとき、(ゲッターを使用して)フィールド値にアクセスし、setterメソッドを使用してそのオブジェクトのフィールドを単純に調整するのではなく、変更された値に基づいて新しいオブジェクトを作成することは、意味的に正しいですか(そしてベストプラクティスの問題です)。
または、木片があり、その元の部分から木を切り取った場合、それをより少ない質量の同じ部分としてモデル化するか、完全に新しい部分としてモデル化する必要があります。
セッターの使用はより簡潔であるように思われ、非常に多くのオブジェクトを作成する場合はガベージコレクションが問題になるため、実用的ではなく理論的な観点からこの質問に取り組んでいます。
よろしくお願いします!