5

StoreOwnerエンティティがあります。StoreOwnerにはStoreプロパティがあります。

public class Product { }

public class Store { 
    public IEnumerable<Product> Products { get; private set; }
}

public class StoreOwner { 
    public Store Store { get; private set }
}

私は次のユーザーストーリーを持っています:

ストアの所有者として、ストアに商品を追加できます。

「商品をストアに追加する」という行動はどこにあるべきですか?StoreOwnerまたはStoreで?

ストアの場合、メソッド名は何になりますか?

4

4 に答える 4

4

Storeの子エンティティであると推測しているので、に入れStoreます。Store.AddProduct()製品コレクションを公開するのとは対照的な何か。

現在の所有者だけがそれを実行できることを確認するロジックがある場合、これはオプションで所有者についての知識をすでに持っているStore場合にのみ属すると思いますが、すべてを試す前に必ず検証する必要があります。StoreAddProduct

その部分はユーザーロールのように見えるので、おそらくこれはUIコントローラーに属しているか、現在のユーザーが実際にストアの所有者である場合は、これをユーザーロールに織り込み、それに対して承認します。

于 2012-08-10T15:32:46.760 に答える
1

「ストアの追加」の動作はどこにあるべきですか?StoreOwnerまたはStoreで?

私はあなたが製品を追加することを意味すると思います

メソッドをの一部にしStoreます。のようなものstore.AddProduct(product)。サロンシャンプーなどでない限り、オーナーに商品を追加することはできません。

于 2012-08-10T15:31:33.710 に答える
1

私が取った最善のアプローチの1つは、誰が何を所有しているかを常に確認することです。

それで :

StoreOwnerはストアを所有していますストアには製品が含まれています

したがって、ストーリーと上記のユースケースに基づいて、Store.AddProduct(newProduct);と言います。

于 2012-08-10T15:34:09.613 に答える
0

インスタンスにアクセスできる場合にのみ製品を追加できるようにする必要がある場合StoreOwnerは、メソッドをそこに配置します。それ以外の場合は、Storeクラスに配置します。

名前AddProductは明らかなようです...

于 2012-08-10T15:34:17.590 に答える