質問

次のメソッドを持つデータクラスがあります:

  • ExecuteUDIQuery(string query)
  • ExecuteSelectQuery(string query)
  • ExecuteSP(string anme、string [、] params)

データクラスを使用するクラスがたくさんあります。クラスダイアグラムを作成したいのですが、クラスがデータクラスとどのような関係にあるのかわかりません。コンポジットですか? 1:1または..ですか?

データクラスを使用するクラスの例は、Staffクラスです。このクラスには、メソッドLoad()があります。このメソッドは、スタッフオブジェクトをスタッフメンバーのIDでロードします。このメソッドには、DataクラスのExecuteSelectQuery(string query)メソッドに渡されるクエリが含まれます。

編集: データクラスは静的ではありません。しかし、私には疑問があります。私は実際に何をすべきかわかりません。ポイントは、クエリを実行して結果を返すことだけです。

役に立ちましたか?

解決

使用 依存関係を提案します。

ここに簡単な説明があります。

他のヒント

クラスの名前を照会します。クラス名は通常、単数名詞でなければなりません。例;

  • ウィンドウ
  • トランザクション

データは複数形であり、いずれにしてもデータベースでなければなりません。

Staffと同様に、もう一度複数形で、MemberOfStaffにすべきだと思います。もちろん、それがスタッフのメンバーのリストである場合を除き、その場合は、部門、プロジェクト、部門など、問題のドメインが示すものを何でも呼び出します。

クラスの良い名前を思い付くのは非常に難しいことですが、努力する価値は十分にあります。

集約、複合、1対1の関係の違いは少し曖昧で、ややarbitrary意的です。

1つのクラスが他のクラスを所有している場合(ライフサイクルを担当する場合)、集約(白抜きのひし形)を使用します。

私は、他のすべての場合に1対1の関係を使用します。

クラスは、それを使用するクラスによってインスタンス化されていますか、それともメソッドは静的ですか? それらが静的である場合、非修飾の依存関係としてこれを表します(データクラスを使用するクラスからデータクラスへの点線の矢印)

データクラスを使用しているクラスがそのクラスの独自のプライベートインスタンスを作成する場合、これは1:1の構成になります(データクラスインスタンスのlifcycleがそれを使用しているオブジェクトに関連付けられていると仮定)

デザイン全体のコメントを控えることはできません。LoadクラスをStaffクラスから移動して、このクラスがDataクラスに直接依存しないようにします。

既存の設計の範囲内で、以下を提案します。 スタッフクラスにデータクラスのインスタンス変数が含まれている場合、それは関連付けです。インスタンスを取得するためだけにデータクラスがインスタンス化される場合、@ toolkitのように、指定されたタイプの単なる依存関係になります。

十分なデータがありません。

クラスの概要などを教えてください。私が見ることができることから、私は実際にこれをデータクラスとは呼ばなかったでしょう(データはアクセサのように見えます)、それはおそらくシングルトンのようです:1、集約または関連付け)、またはインスタンス化された場合は1:1のコンポーネントになります。

  

今、クラス図を作成したいのですが、クラスがデータクラスとどのような関係にあるのかわかりません。

私たちもしない-あなたはDataクラスについて説明しただけで、Staffが使用するデータを取得する方法については説明していません。

Staffがデータクラスの1つ以上のインスタンスを保持している場合、StaffとDataの間に関連付けがあるか、StaffにData型の属性があります(Dataに値セマンティクスがある場合)。

Dataインスタンスが複数のStaffインスタンスによって参照され、それらのライフサイクルがStaffインスタンスによって参照されることに依存している場合、これは集約関係として表示される場合があります。 DataインスタンスがStaffインスタンス間で共有されておらず、そのライフサイクルが参照されることに依存している場合、これは構成関係として表示される場合があります。

Xが使用するデータインスタンスを保持しない場合、使用関係が適切です。

依存関係と使用法は、「コネクタ」の最も弱い2つの種類です。ステレオタイプ、キーワードを検討して、関係を改善できます。インスタンス化、呼び出し、作成、送信のステレオタイプが機能する場合があります。正しい答えは使用法のようですが、詳細情報はありません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top