答えて
図形のアイデアを完全にカプセル化したい場合は、宇宙に無限の図形が存在するため、階層型ではありません。代わりに、1つのShapeクラスにする必要があります。一連の線と曲線で構成されていなければなりません。次に、特定の形状定義に準拠しているかどうかを確認するメソッドを持つことができます。 IsCircle()
,IsSquare()
など
また、特定のタイプのシェイプに設定するメソッドやコンストラクタを使用することもできます。
すべてのシェイプはおそらくIShape
インターフェイスを実装できます。 IShape
は、Area()
メソッド、およびIsIntersectingWith(IShape otherShape)
メソッドを必要とします。この単純化されたビューでは、動的ディスパッチ(三角形/三角形の交点には三角形/セグメントとは異なるアルゴリズムが必要)を実装する方法について他にもいくつか質問があります。
もちろん、この機能が実際に必要であると想定しています。グラフィック指向の形状ライブラリを仮定すると、Rotate
,Translate
、Scale
のような変換を定義することができます。また、Union
、Intersect
、または他の設定操作を使用することもできます(ただし、これらの2つは必要なすべてを表現できます)。
また、計算幾何学に向けて物を配置し、IShape
をPolygon
に変換するメソッド関数を提供することもできます。
私の指摘は、IShape
で実施できる機能は、予想される使用に従うべきだということです。 (あなたの教育から始まってからの)期待された使用がない場合は、運動そのものの一部として、または発見フィールドとして使用する必要があります(この使用について、または使用すると、この機能すべてを表現することができます1つのインターフェイスで、または複数に分割する必要があります)
- 1. cakephpモデル階層
- 2. シングルトンPDOモデル - 階層
- 3. JAGSの階層モデルをR
- 4. RESTful iPhoneクライアントとモデル階層
- 5. JPA:モデル階層の実装 - @MappedSuperclassと@Inheritance
- 6. テーブル階層をモデル化する方法
- 7. 3階層アーキテクチャと2階層アーキテクチャ
- 8. 階層
- 9. 階層
- 10. 階層
- 11. 階層
- 12. 2階層ナビゲーションバーの色と間隔が正しくない
- 13. Stanを使用した階層モデルのHyperpriors
- 14. checkboxGroupInputの階層
- 15. MVC3の階層
- 16. 階層のコレクション
- 17. ワークアイテムの階層
- 18. は、私がこの階層の形式に従っしたい階層ツリー
- 19. Backbone.jsで深いモデル階層を表現するには
- 20. angular2:階層型Jsonデータが正しく表示されない
- 21. Netlogo:正しいノード数で階層(ツリー)ネットワークを作成する
- 22. SSAS次元階層が正しく表示されない
- 23. 階層構造、新しい列、非正規化
- 24. JPAを使用して階層をモデル化する方法
- 25. Neo4Jで階層データをモデル化して返す方法は?
- 26. JAGSを使用した階層的な階層的ベイジアン回帰
- 27. UIImagePickerControllerでUINavigationの階層を修正しました
- 28. 正規表現ファイルのディレクトリ階層の使い方は?
- 29. Djangoのパーミッションの階層化 - モデルや他のパーミッションから継承
- 30. 階層グリッド
Shapesをどのように使用しますか?共通の行動と行動の違いはどのようなものでしょうか? –
2次元形状(円、矩形など)のシステムをモデル化したい3D形状(球など) – xdevel2000
xdevel2000:はい、システムは何ですか? OOモデリングは、あなたが興味を持っている振る舞いによって完全に駆動されるべき活動です.OO設計における現実世界のすべてをモデル化することは不可能で無意味です。君は。このためには、設計しているシステムの目的を決定する必要があります。 –