1

私の例では、任意の数の関連付けられた Addresses が関連付けられた Person クラスがあります。そのため、Person クラスのメンバーとして Addresses コレクションが存在します。

Person クラスを使用する多くのアプリケーションでは、「デフォルト」の Address オブジェクトを取得したいだけです。実装に関していくつかの設計上の問題があります。

  1. DB の各 Address レコードで、コレクションのデフォルトかどうかを設定するフラグを設定できます。別の方法として、さまざまな種類の住所 (自宅、請求先、配送先など) を設定し、個人が自宅の住所レコードを持っている場合はそれをデフォルトとして使用するというルールを設定することもできます。そうでない場合は、配送などを使用してください...
  2. デフォルトのアドレスを取得するために使用されるインターフェースに関しては、それを行う方法はたくさんあります。私は、SO 関係者の何人かが最もよく感じる方法を知りたいと思います。

    Address a1 = myPerson.DefaultAddress;
    Address a1 = myPerson.Addresses["Default"];
    Address a1 = myPerson.Addresses.Default;
    

「アプリケーションによって異なります」と言うのは、おそらく良いアドバイスです。すべての新しい開発のためにいくつかの基本的なクラスを構築していると言って、それを先取りしましょう。そのため、私たちが構築しているこの最初のアプリを、クラス設計の最終的な言葉と見なすことは必ずしもできません。

4

1 に答える 1

1

DB内の各レコードにフラグを設定すると、最も幅広い機能を利用できるようになります。デフォルトとして表示するアドレスのルールをハードコーディングすると、デザインが制限されます。

2番目の場合、3番目の実装は最もオブジェクト指向のように聞こえます。

于 2009-01-12T18:51:43.703 に答える