From cb0b6b0dc941eb17d46c2f40bfdfc6ab71d57ee9 Mon Sep 17 00:00:00 2001 From: Tomas Date: Wed, 28 Apr 2021 16:38:00 -0300 Subject: [PATCH] feat(qmp): Uniforme factory method --- .../src/main/java/quemepongo/Modista.java | 44 +++++++++++++++++++ .../main/java/quemepongo/ModistaJhonson.java | 43 ++++++++++++++++++ .../main/java/quemepongo/ModistaSanJuan.java | 44 +++++++++++++++++++ 3 files changed, 131 insertions(+) create mode 100644 01-lecture/quemepongo/src/main/java/quemepongo/Modista.java create mode 100644 01-lecture/quemepongo/src/main/java/quemepongo/ModistaJhonson.java create mode 100644 01-lecture/quemepongo/src/main/java/quemepongo/ModistaSanJuan.java diff --git a/01-lecture/quemepongo/src/main/java/quemepongo/Modista.java b/01-lecture/quemepongo/src/main/java/quemepongo/Modista.java new file mode 100644 index 0000000..733e6c4 --- /dev/null +++ b/01-lecture/quemepongo/src/main/java/quemepongo/Modista.java @@ -0,0 +1,44 @@ +package quemepongo; + +/** + * Factory de Atuendos. + * + * @version 1.0 + * @since 04.27.2021 + */ +public abstract class Modista { + + /** + * Fabrica un uniforme + * + * @return un nuevo uniforme + * @since 1.0 + */ + public Uniforme fabricarUniforme() { + return new Uniforme(this.fabricarPrendaSuperior(), this.fabricarPrendaInferior(), this.fabricarCalzado()); + } + + /** + * Fabrica la parte superior + * + * @return una prenda de categoria Prenda Superior. + * @since 1.0 + */ + protected abstract Prenda fabricarPrendaSuperior(); + + /** + * Fabrica la parte inferior + * + * @return una prenda de categoria Prenda Inferior. + * @since 1.0 + */ + protected abstract Prenda fabricarPrendaInferior(); + + /** + * Fabrica un calsado. + * + * @return una prenda de categoria Calzado. + * @since 1.0 + */ + protected abstract Prenda fabricarCalzado(); +} diff --git a/01-lecture/quemepongo/src/main/java/quemepongo/ModistaJhonson.java b/01-lecture/quemepongo/src/main/java/quemepongo/ModistaJhonson.java new file mode 100644 index 0000000..7340aee --- /dev/null +++ b/01-lecture/quemepongo/src/main/java/quemepongo/ModistaJhonson.java @@ -0,0 +1,43 @@ +package quemepongo; + +/** + * Factory de Uniformes del Instituto Jhonson. + * + * @version 1.0 + * @since 04.28.2021 + */ +public class ModistaJhonson extends Modista { + + @Override + protected Prenda fabricarPrendaSuperior() { + + Borrador bosquejo = new Borrador(); + bosquejo.especificarTipo(TipoPrenda.CAMISA); + bosquejo.especificarMaterial(TipoMaterial.ALGODON); + bosquejo.especificarColorPrimario(new Color("#blanco")); + + return bosquejo.guardarPrenda(); + } + + @Override + protected Prenda fabricarPrendaInferior() { + + Borrador bosquejo = new Borrador(); + bosquejo.especificarTipo(TipoPrenda.PANTALON); + bosquejo.especificarMaterial(TipoMaterial.ACETATO); + bosquejo.especificarColorPrimario(new Color("#negro")); + + return bosquejo.guardarPrenda(); + } + + @Override + protected Prenda fabricarCalzado() { + + Borrador bosquejo = new Borrador(); + bosquejo.especificarTipo(TipoPrenda.ZAPATOS); + bosquejo.especificarMaterial(TipoMaterial.CUERO); + bosquejo.especificarColorPrimario(new Color("#negro")); + + return bosquejo.guardarPrenda(); + } +} diff --git a/01-lecture/quemepongo/src/main/java/quemepongo/ModistaSanJuan.java b/01-lecture/quemepongo/src/main/java/quemepongo/ModistaSanJuan.java new file mode 100644 index 0000000..deb47d7 --- /dev/null +++ b/01-lecture/quemepongo/src/main/java/quemepongo/ModistaSanJuan.java @@ -0,0 +1,44 @@ +package quemepongo; + +/** + * Factory de Uniformes del Colegio San Juan. + * + * @version 1.0 + * @since 04.28.2021 + */ +public class ModistaSanJuan extends Modista { + + @Override + protected Prenda fabricarPrendaSuperior() { + + Borrador bosquejo = new Borrador(); + bosquejo.especificarTipo(TipoPrenda.CHOMBA); + bosquejo.especificarMaterial(TipoMaterial.ALGODON); + bosquejo.especificarColorPrimario(new Color("#verde")); + + return bosquejo.guardarPrenda(); + } + + @Override + protected Prenda fabricarPrendaInferior() { + + Borrador bosquejo = new Borrador(); + bosquejo.especificarTipo(TipoPrenda.PANTALON); + bosquejo.especificarMaterial(TipoMaterial.ACETATO); + bosquejo.especificarColorPrimario(new Color("#gris")); + + return bosquejo.guardarPrenda(); + } + + @Override + protected Prenda fabricarCalzado() { + + Borrador bosquejo = new Borrador(); + bosquejo.especificarTipo(TipoPrenda.ZAPATILLAS); + bosquejo.especificarMaterial(TipoMaterial.CUERO); + bosquejo.especificarColorPrimario(new Color("#blanco")); + + return bosquejo.guardarPrenda(); + } + +}