私のドメインにはproduct entityといくつかの割引デコレータがあります。
// the client
[Test]
public void ChainedDiscountShouldWork() {
// arrange
var product = new SimpleProduct {
Id = Guid.NewGuid(),
PricePerPiece = 10M,
SelectedQuantity = 10,
Title = "simple product"
};
var itemsToApplyTheDiscount = 5;
var itemsYouGetFree = 2;
var discountPercentage = 0.3M;
var discountA = new BuyXGetYFreeDecorator(product, itemsToApplyTheDiscount, itemsYouGetFree);
var discountB = new FixedDiscountDecorator(discountA, discountPercentage);
// act
var totalCost = discountB.CalculateCost();
// assert
Assert.AreEqual(42M, totalCost);
}
テストで行ったように (連鎖) 割引を適用できるように UI を構築するにはどうすればよいですか?
新製品の作成段階で割引プランの一覧を表示できました。デコレータ コンストラクタのシグネチャは異なります。これを普遍的に利用する方法がわかりません。
わかった。Builder
パターンを使用することが可能です。例が必要です。
アドバイスが必要です。Web UI (私の場合) でそれをどのように実装しますASP.NET MVC
か?