Python でジオメトリ ライブラリを開発し、3D 空間でのポイント、ライン、プレーン、およびさまざまなジオメトリ操作を記述する必要があります。私の前の質問に関連しています。
設計における主な問題は、これらのエンティティに ID が必要かどうかです。インスピレーションを得るための同様のライブラリ (別の言語で開発された) があるかどうか、選択されたデザインは何か、特に 1 つの選択ともう 1 つの選択の理由を知りたいと思っていました。
Python でジオメトリ ライブラリを開発し、3D 空間でのポイント、ライン、プレーン、およびさまざまなジオメトリ操作を記述する必要があります。私の前の質問に関連しています。
設計における主な問題は、これらのエンティティに ID が必要かどうかです。インスピレーションを得るための同様のライブラリ (別の言語で開発された) があるかどうか、選択されたデザインは何か、特に 1 つの選択ともう 1 つの選択の理由を知りたいと思っていました。
私は他のライブラリに精通していませんが、3d ポイントは (不変の) 値オブジェクトであるべきだと思われます。- 複数のコンテナ (ライン、プレーンなど) 間でポイントを共有できます。 - 防御的なゲッターとセッターを回避します。 - 実生活では、3D ポイントにはアイデンティティがありません。
また、Josh Bloch は ( http://www.infoq.com/presentations/effective-api-designを参照 )、Java の標準ライブラリの設計で犯した過ちの 1 つは、Size クラスを次のように定義しなかったことだと述べています。不変。