2

アップデート:

私が探しているのは、クラスにゲッター/セッタープロップを追加するのではなく、各クラスを個別に作成する必要があるということです。つまり、次のことを意味します。

したがって、Visit を作成するには、VISIT に次の小道具が必要です。

VisitName, Purpose, StartDate, EndDate, HostId, HostName, RequesterId, RequeserName

または私はこれを持っている必要があります:

VisitName, Purpose, StartDate, EndDate, IPerson Host, IPerson Requester

更新を終了

私が正しい方向に進んでいる場合は、アドバイス/フィードバックが必要です。以下はドメイン モデルです (完全ではないプロジェクトの一部です)。

その訪問モデルには「訪問」というクラスがあり、名前、目的、開始日、終了日などの訪問の基本があります...そしてそのクラスには、訪問を主催する人と訪問を要求する人もいます。

下のクラスについてどう思いますか?

ここに画像の説明を入力

 //aggreate class
public class Visit
{
    IVisitBasic _visitBasic;
    IPerson _host;
    IPerson _requester;

public IVisitBasic VisitBasic
{
    get { return _visitBasic; }
    set { _visitBasic = value; }
}

public IPerson Host
{
    get { return _host; }
    set { _host = value; }
}

public IPerson Requester
{
    get { return _requester; }
    set { _requester = value; }
}

public Visit(IVisitBasic visitBasic, IPerson host, IPerson requester)
{
    _visitBasic = visitBasic;
    _host = host;
    _requester = requester;
}

public Visit() { }

}

4

1 に答える 1

0

最初は問題ないように見えますが、最初のドメイン モデルのコーディングとテストを実際に開始するまで、ハードで高速なドメイン モデルは作成しません。見逃した、または要件が変更されたなど。

ざっと見てからのその他のポイント。

  • VisitBasic の目的は何ですか? 抽象基本クラスにするか、名前をより明確にする必要がありますか?
  • ホストを独自のクラスにしたい場合があります。それには、個人クラスに関連しない情報が含まれている可能性があるため、個人のサブクラスになる可能性があります。しかし、上で述べたように、それを繰り返し開発する方が良いかもしれません。おそらくリクエスタも同様ですが、おそらく可能性は低いでしょう。

UPDATE RESPONSE: 現在、ほとんどの標準設計は、サービス レイヤーを追加することです。つまり、createVisit メソッドを使用して VisitService を追加します。また、visit オブジェクトのプロパティは、ビジネス ロジックを持たずに、ホストとリクエスターにリンクする必要があります。(それであなたの質問に答えられると思いますか?)

于 2011-12-30T03:17:48.063 に答える