Seguimiento al comentario:
Mi intención original era sólo para sugerir un dominio del problema mediante el cual se podía romper cada parte de todo el sistema en partes más significativas mediante el cual los estudiantes podía ver claramente una necesidad para cada patrón. En lugar de varias tareas no relacionadas, pensé que podría seguir esta idea para varias tareas más grandes y dejarles ver cómo funcionaría todo. Eso podría ser demasiado para un estudiante ahora que lo pienso y realmente no solucionó su problema.
Aquí está un ejemplo de la vida real
Sale(Integer_quantity, ICatalogItem _item, IDiscount _discount) implements ITransaction
Refund(Double _amount, IOrderNumber _orderNumer) implements ITransaction
Estos se produjo porque alguien decidió utilizar un número mágico "-1" para indicar que no hay venta. Puedes imaginar lo que sucedió cuando las personas reembolsaron un dólar. El IDiscount
fue, por supuesto, un patrón de Estrategia para calcular el precio de la venta. Teníamos un objeto de fábrica abstracto para crear todas las ventas.
Gracias por mencionar ese proyecto de código abierto; puede ser realmente útil para mí (aunque lleva tiempo analizar todo el código y preparar tareas/ejemplos). – Kniganapolke