为简单的折扣客户端构建用户界面

时间:2013-09-02 06:11:55

标签: c# asp.net-mvc mongodb design-patterns

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

// 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)中实现它?

1 个答案:

答案 0 :(得分:1)

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

在App.config中保留打折数据很好,但可以更改或更新,以确保用户可以访问它。 在实时环境中,我们不应该操纵配置,那么如何将其放入数据库? 我会这样做,把它放在DB中。