0

我的域中有产品实体和几个折扣装饰器。

// 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)?

4

1 回答 1

1

可能你应该看看 Partial View 的概念,这篇文章会对你有所帮助。 http://rachelappel.com/razor/partial-views-in-asp-net-mvc-3-w-the-razor-view-engine/

在 App.config 中保留折扣数据很好,但是可以更改或更新,因此请确保用户可以访问它。在 Live 环境中,我们不应该过多地操作配置,那么将它放在数据库中怎么样?我会这样做,把它放在数据库中。

于 2013-09-02T06:44:17.627 回答