我的域中有产品实体和几个折扣装饰。
// 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
)中实现它?
答案 0 :(得分:1)
你可能应该看看Partial View概念,这篇文章对你有所帮助。 http://rachelappel.com/razor/partial-views-in-asp-net-mvc-3-w-the-razor-view-engine/
在App.config中保留打折数据很好,但可以更改或更新,以确保用户可以访问它。 在实时环境中,我们不应该操纵配置,那么如何将其放入数据库? 我会这样做,把它放在DB中。