Exercise: Order system, patterns galore

This exercise is about design pattern! You are supposed to use as many design patterns as possible (and relevant).

Getting started

Read and understand the article Building an application using design patterns and principles in C# by Jon Woo.

I guess you will have to type in some of the examples from the article - and actually perform the refactorings suggested in the article.

In the exercise you must program a similar system, but with sligthly different focus.

Tax

In many countries around the world you pay tax when you buy a product, so-called "value added tax".

Different countries have different taxing system.

In Denmark there is a flat rate taxing system: All products are subject to 25% tax.

In Sweden there are three different tax levels

In the ordering system you are goind to program tax must be calculated based on the customers country.

It must be easy to add new countries, preferebly without changing the program.

Unit testing

As always - and with good coverage.

Discounts

The shop has a discount scheme ...