Задачи
Задача 1
Да се напише програма за система, която управлява състоянието на банкова карта.
Всяка карта се дефинира от номер, картодържател и срок на валидност.
Картата може да бъде в едно от следните състояния: активна, блокирана или изтекла. В зависимост от състоянието, картата реагира по различен начин при операции като извършване на плащане, блокиране на картата и изтичане на срока на валидност (активна карта може да извършва плащания и да се блокира, блокирана карта не може да извършва плащания, а изтекла карта не може да извършва никакви операции).
Задача 2
Да се напише програма за онлайн магазин, в който се изчислява цената за доставка.
Системата поддържа различни стратегии за доставка: стандартна доставка, експресна доставка и доставка до офис на куриер.
Всяка поръчка се дефинира от номер, стойност и тегло. Цената за доставка се изчислява по различен начин според избрания метод на доставка.
Реализацията трябва да позволява избор на стратегия за доставка, лесно добавяне на нов начин за изчисляване на доставка и промяна на стратегията без промяна в класа на поръчката.