Continuing along with Dave Thomas's kata series, I'd like to share my implementation of the Product Pricing kata where we're asked to implement a checkout system that accepts rules for different pricing strategies. This immediately reminded me of my FizzBuzz implementation. In the end it was actually a fairly straight forward implementation of the Strategy pattern. The more challenging part of the exercise was extracting the actual pricing rules from the supplied test suite; a user story is often easier to read than a test of very specific behavior.
In the end, I was pleased with the rule set I implemented. For the full solution, please visit GitHub.
def rules [ QuantityDiscountRule.new(sku: "A", quantity: 3, price: 30), QuantityDiscountRule.new(sku: "B", quantity: 2, price: 15), RegularPriceRule.new({ "A" => 50, "B" => 30, "C" => 20, "D" => 15 }) ] end
No comments:
Post a Comment