2016-05-10 7 views
1

私は、下記のリンクプロットの複合パターン図をスケッチしようとしています。コンポジットデザインパターン図のスケッチ

Plot

これはX &ためYは、個々の曲線のラベル、及び破線のグリッドを軸複数の曲線を含んでいる2次元曲線、タイトル、ラベルです。プロットの一部の機能には、指定された色でカーブを描画する機能とシンボルの凡例を表示する機能が含まれます。また、アプリケーションは複数のプロットを可能にし、プロットがサイズ変更されるとプロットのラベルを自動的に変更し、曲線の一部を拡大する機能を提供する必要があります。

葉:

これらは私が思い付くことができた成分である

  • 曲線{ストリングcurveLabel。文字列の色。 setColorを()}

  • 座標軸{文字列X_LABEL、Y_LABEL;}

  • 点] {int型X、Y;}

複合材料:

  • プロット{文字列のタイトル。 ArrayList plotComponents; displayLegend()、ズーム()、relabelPlot()}

インタフェース:ここ

  • PlotInterface {ボイドドロー()}

、Iは3葉とつのノードを有しています。カーブリーフは、所望の色を設定する方法を用いて、各曲線(例えば、v 3(t))に対して固有のラベルを有する。軸のリーフ は、X軸ラベルとY軸ラベルを持ちます。 DashedLineリーフは、グリッドを配置するためのx座標とy座標を持ちます。プロットノードは、プロットや葉プラス凡例を表示するための方法を含むコンポーネントのコレクションと一緒にタイトルを持っているプロットを拡大し、サイズを変更したときに、プロットを再ラベル付けします。すべてのリーフとノードはPlotInterfaceを実装しており、すべてdraw()メソッドの具体的な実装を提供しています。私がこれまで持っていますが、私はまだそのデザインパターンを学んでいるすべてです

は私が正しくまたは、この問題に取り組むために、複合デザインパターンを使用するためのより良い方法がある場合は、それに近づいていますかどうかを確認したかったです。どんな提案や指導も非常に高く評価されます!前もって感謝します。

+0

は、なぜあなたは、葉の軸と点線の部分をしたいですか?これらはすべてのケースで一定です。代わりに**デコレータ**でこの問題を解決してみてください。基本オブジェクトとして軸線と破線を作成し、それをグラフで飾ることができます。 – Ubercool

+0

私が間違っているかもしれないが、私は、破線及び軸は、私は(プロットは、曲線、X&Y軸、および格子線から構成されている)の葉として記載されている理由だ所与のプロットの原子構成要素であることを感じました。私はちょうどデザインパターンを学び始めて、デコレータパターンの周りにはいないので、実際にはどのように動作しているのか分かりませんが、それを見ていきます。私はまだコンポジットデザインパターンを学習しており、コンポジットデザインを使用してアプローチするように要求されたテキストの質問を解決しています。 – Jikes

答えて

0

デザインをお勧めしますhere 軸と破線を持つベースグラフを作成できます。このベースグラフを飾ることで、必要な数のグラフを作成できます。これは実装が容易で、拡張が容易です。援助が必要な場合は教えてください。

+0

リンクありがとう!本当に助かった。実際には非常に簡単で直感的でした。 – Jikes