0

クラス 'Human' -->(1..*) 'Human' を考えてみましょう。ここで、Human はスーパータイプです。「男性」、「女性」、「SociallyPathologicalMale」などのサブクラスがあるとします。基本的な関連 b/w 2 エンティティは共通のままで、サブタイプは関連の名前と制約を定義しますが、基本的な関係は依然として m:nb/w 2 です。人間の実体。例:-

  • '男性' -->(1:1)('妻'(関係名)) '女性'

  • 「女性」-->(1:1)(「夫」)「男性」

  • 'SociallyPathologicalMale'-->(1:0)('友人') '男性'

    [2011 年 12 月 13 日編集] - Java で実装する必要がある場合、関連付けの再利用を可能にするベスト プラクティスにはどのようなものがありますか?

基本クラスから始めるとしましょう:-

 class Human{
  private List<Human> relationships; // in a subclass this field, could 
//  this generically be represented ?? 
}

何かのようなもの

   class Man extends Human{
    private List<Woman> relationships;//should be 0 or 1
    }

人間 (または他のサブクラス) で関係フィールドが再定義されているという事実は、構造的に強制可能です。つまり、サブクラスを定義している間、関係を定義することは必須です。Javaでそのような種類の構造を作成することは可能ですか?? これを簡単にできる言語は他にありますか??

4

2 に答える 2

0

私が使用する2つの実装方法は、継承と構成です。

is a関係は継承で表現され、関係has aは構成で表現されます。

継承と構成の両方により、新しいクラス内にサブオブジェクトを配置できます。コードを再利用するための主な手法の 2 つは、クラスの継承とオブジェクトの構成です。

Inheritance

class Human {
//some code
}
class Male extends Human {
//some code
}

Composition

class Male
{
     Wife mrs = new Wife();
}
于 2011-12-02T22:42:11.370 に答える