我的域中有产品实体和几个折扣装饰器。
// 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
)?