0
---------------------
| AbstractPersister |
---------------------
         ^
        / \
        ---
         |
------------------
| OrderPersister |
------------------
         ^
        / \
        ---
         |
    ---------     ---------
    | Offer |<>---| Item  |
    ---------     ---------

上記はUMLクラス図のアスキーアートです。アイテムを含む「offer」というドメインクラスがあります。たとえば、500ドルの費用がかかり、バスの切符が含まれている旅行のオファー、モーテルでの宿泊、ショーなどです。

顧客がストアをチェックアウトすると、オファーは注文アイテムを含む注文としてデータベースに保持されます。

オファーを継承することは、純粋なオブジェクト指向設計で意味がありOrderPersisterますか?はOrderPersister、そのスーパークラスであるを使用してデータベースへの接続を取得できますAbstractPersisterOrderPersisterと呼ばれるメソッドを追加しBookます。これにより、データベースに注文とそのアイテムが作成されます。

これが悪い設計である場合、どのような選択肢がありますか?できるだけオブジェクト指向にしてほしいです。

4

1 に答える 1

1

クラスを拡張する前に、次の質問をする必要があります。

オファーはOrderPersisterですか?そうではないと言います。

データマッパーパターンを確認する必要があります。これにより、永続性について何も知らないドメインオブジェクトを使用でき、それでもそれらを永続化できます。

于 2012-11-25T06:26:57.450 に答える