autocad のアドインをプログラミングしていますが、設計上の問題で行き詰まっています。デザインパターンで解決できると思います。
テーブルを描画しようとしています。テーブルには、フレームと上面/表面の 2 つの部分があります。だから私はこれらの3つのクラスを持っています:
- Draw : このクラスは、ユーザー入力を検証して挿入ポイントを要求し、フレームとサーフェスを作成して、新しく作成されたインスタンスを autocad DB に挿入します。
- フレーム: 長さと奥行きに基づいてフレームを計算します。
- 表面: 長さと深さに基づいて表面を計算します。
私の問題は、ユーザーが指定した長さの値が最大値より大きい場合、2 つ以上のサーフェスを作成する必要があることです。サーフェス クラスは、どのサーフェスが最初で最後かを知る必要もあります。また、Drawクラスは、2 番目のサーフェスを配置するために最初のサーフェスが終了する場所も認識している必要があります。
私が今行ったことは、calcNumberOfSurface(int len) というメソッドを Draw クラスに入れ、このメソッド内でサーフェスの数を反復処理して、クラス Surface の新しい状態を毎回作成することです。このソリューションにも 2 つの問題があります。Surface クラスは最初か最後かわかりません。最初のサーフェスの終了位置を定義できません。これを Draw クラスに実装する必要があります。
この問題を解決するためのベスト プラクティスやデザイン パターンはありますか?