diff --git a/abstract-factory/src/main/java/com/iluwatar/abstractfactory/App.java b/abstract-factory/src/main/java/com/iluwatar/abstractfactory/App.java index 618b98c52..5b93f0e46 100644 --- a/abstract-factory/src/main/java/com/iluwatar/abstractfactory/App.java +++ b/abstract-factory/src/main/java/com/iluwatar/abstractfactory/App.java @@ -3,80 +3,78 @@ package com.iluwatar.abstractfactory; /** * - * The Abstract Factory pattern provides a way to encapsulate a group of individual - * factories that have a common theme without specifying their concrete classes. In - * normal usage, the client software creates a concrete implementation of the abstract - * factory and then uses the generic interface of the factory to create the concrete - * objects that are part of the theme. The client does not know (or care) which - * concrete objects it gets from each of these internal factories, since it uses only - * the generic interfaces of their products. This pattern separates the details of - * implementation of a set of objects from their general usage and relies on object - * composition, as object creation is implemented in methods exposed in the factory - * interface. + * The Abstract Factory pattern provides a way to encapsulate a group of individual factories that + * have a common theme without specifying their concrete classes. In normal usage, the client + * software creates a concrete implementation of the abstract factory and then uses the generic + * interface of the factory to create the concrete objects that are part of the theme. The client + * does not know (or care) which concrete objects it gets from each of these internal factories, + * since it uses only the generic interfaces of their products. This pattern separates the details + * of implementation of a set of objects from their general usage and relies on object composition, + * as object creation is implemented in methods exposed in the factory interface. *

- * The essence of the Abstract Factory pattern is a factory interface - * ({@link KingdomFactory}) and its implementations ({@link ElfKingdomFactory}, - * {@link OrcKingdomFactory}). The example uses both concrete implementations to - * create a king, a castle and an army. + * The essence of the Abstract Factory pattern is a factory interface ({@link KingdomFactory}) and + * its implementations ({@link ElfKingdomFactory}, {@link OrcKingdomFactory}). The example uses both + * concrete implementations to create a king, a castle and an army. * */ public class App { - private King king; - private Castle castle; - private Army army; + private King king; + private Castle castle; + private Army army; - /** - * Creates kingdom - * @param factory - */ - public void createKingdom(final KingdomFactory factory) { - setKing(factory.createKing()); - setCastle(factory.createCastle()); - setArmy(factory.createArmy()); - } - - ElfKingdomFactory getElfKingdomFactory() { - return new ElfKingdomFactory(); - } - - OrcKingdomFactory getOrcKingdomFactory() { - return new OrcKingdomFactory(); - } - - King getKing(final KingdomFactory factory) { - return factory.createKing(); - } - - Castle getCastle(final KingdomFactory factory) { - return factory.createCastle(); - } - - Army getArmy(final KingdomFactory factory) { - return factory.createArmy(); - } - - public King getKing() { - return king; - } - - private void setKing(final King king) { - this.king = king; - } - - public Castle getCastle() { - return castle; - } - - private void setCastle(final Castle castle) { - this.castle = castle; - } - - public Army getArmy() { - return army; - } - - private void setArmy(final Army army) { - this.army = army; - } + /** + * Creates kingdom + * + * @param factory + */ + public void createKingdom(final KingdomFactory factory) { + setKing(factory.createKing()); + setCastle(factory.createCastle()); + setArmy(factory.createArmy()); + } + + ElfKingdomFactory getElfKingdomFactory() { + return new ElfKingdomFactory(); + } + + OrcKingdomFactory getOrcKingdomFactory() { + return new OrcKingdomFactory(); + } + + King getKing(final KingdomFactory factory) { + return factory.createKing(); + } + + Castle getCastle(final KingdomFactory factory) { + return factory.createCastle(); + } + + Army getArmy(final KingdomFactory factory) { + return factory.createArmy(); + } + + public King getKing() { + return king; + } + + private void setKing(final King king) { + this.king = king; + } + + public Castle getCastle() { + return castle; + } + + private void setCastle(final Castle castle) { + this.castle = castle; + } + + public Army getArmy() { + return army; + } + + private void setArmy(final Army army) { + this.army = army; + } } diff --git a/abstract-factory/src/main/java/com/iluwatar/abstractfactory/Army.java b/abstract-factory/src/main/java/com/iluwatar/abstractfactory/Army.java index 333b5c2cd..8e97d3f4e 100644 --- a/abstract-factory/src/main/java/com/iluwatar/abstractfactory/Army.java +++ b/abstract-factory/src/main/java/com/iluwatar/abstractfactory/Army.java @@ -7,5 +7,5 @@ package com.iluwatar.abstractfactory; */ public interface Army { - String getDescription(); + String getDescription(); } diff --git a/abstract-factory/src/main/java/com/iluwatar/abstractfactory/Castle.java b/abstract-factory/src/main/java/com/iluwatar/abstractfactory/Castle.java index 0290cb67c..3a36513bf 100644 --- a/abstract-factory/src/main/java/com/iluwatar/abstractfactory/Castle.java +++ b/abstract-factory/src/main/java/com/iluwatar/abstractfactory/Castle.java @@ -7,5 +7,5 @@ package com.iluwatar.abstractfactory; */ public interface Castle { - String getDescription(); + String getDescription(); } diff --git a/abstract-factory/src/main/java/com/iluwatar/abstractfactory/ElfArmy.java b/abstract-factory/src/main/java/com/iluwatar/abstractfactory/ElfArmy.java index 410f46951..d7ae734d2 100644 --- a/abstract-factory/src/main/java/com/iluwatar/abstractfactory/ElfArmy.java +++ b/abstract-factory/src/main/java/com/iluwatar/abstractfactory/ElfArmy.java @@ -7,10 +7,10 @@ package com.iluwatar.abstractfactory; */ public class ElfArmy implements Army { - static final String DESCRIPTION = "This is the Elven Army!"; + static final String DESCRIPTION = "This is the Elven Army!"; - @Override - public String getDescription() { - return DESCRIPTION; - } + @Override + public String getDescription() { + return DESCRIPTION; + } } diff --git a/abstract-factory/src/main/java/com/iluwatar/abstractfactory/ElfCastle.java b/abstract-factory/src/main/java/com/iluwatar/abstractfactory/ElfCastle.java index fe2e9a0e7..e53b198d7 100644 --- a/abstract-factory/src/main/java/com/iluwatar/abstractfactory/ElfCastle.java +++ b/abstract-factory/src/main/java/com/iluwatar/abstractfactory/ElfCastle.java @@ -7,10 +7,10 @@ package com.iluwatar.abstractfactory; */ public class ElfCastle implements Castle { - static final String DESCRIPTION = "This is the Elven castle!"; + static final String DESCRIPTION = "This is the Elven castle!"; - @Override - public String getDescription() { - return DESCRIPTION; - } + @Override + public String getDescription() { + return DESCRIPTION; + } } diff --git a/abstract-factory/src/main/java/com/iluwatar/abstractfactory/ElfKing.java b/abstract-factory/src/main/java/com/iluwatar/abstractfactory/ElfKing.java index 66571ee01..36669f42f 100644 --- a/abstract-factory/src/main/java/com/iluwatar/abstractfactory/ElfKing.java +++ b/abstract-factory/src/main/java/com/iluwatar/abstractfactory/ElfKing.java @@ -7,10 +7,10 @@ package com.iluwatar.abstractfactory; */ public class ElfKing implements King { - static final String DESCRIPTION = "This is the Elven king!"; - - @Override - public String getDescription() { - return DESCRIPTION; - } + static final String DESCRIPTION = "This is the Elven king!"; + + @Override + public String getDescription() { + return DESCRIPTION; + } } diff --git a/abstract-factory/src/main/java/com/iluwatar/abstractfactory/ElfKingdomFactory.java b/abstract-factory/src/main/java/com/iluwatar/abstractfactory/ElfKingdomFactory.java index 0d62fa5f2..7c8435056 100644 --- a/abstract-factory/src/main/java/com/iluwatar/abstractfactory/ElfKingdomFactory.java +++ b/abstract-factory/src/main/java/com/iluwatar/abstractfactory/ElfKingdomFactory.java @@ -7,16 +7,16 @@ package com.iluwatar.abstractfactory; */ public class ElfKingdomFactory implements KingdomFactory { - public Castle createCastle() { - return new ElfCastle(); - } + public Castle createCastle() { + return new ElfCastle(); + } - public King createKing() { - return new ElfKing(); - } + public King createKing() { + return new ElfKing(); + } - public Army createArmy() { - return new ElfArmy(); - } + public Army createArmy() { + return new ElfArmy(); + } } diff --git a/abstract-factory/src/main/java/com/iluwatar/abstractfactory/King.java b/abstract-factory/src/main/java/com/iluwatar/abstractfactory/King.java index c7b9a867c..38e6b9f4d 100644 --- a/abstract-factory/src/main/java/com/iluwatar/abstractfactory/King.java +++ b/abstract-factory/src/main/java/com/iluwatar/abstractfactory/King.java @@ -7,5 +7,5 @@ package com.iluwatar.abstractfactory; */ public interface King { - String getDescription(); + String getDescription(); } diff --git a/abstract-factory/src/main/java/com/iluwatar/abstractfactory/KingdomFactory.java b/abstract-factory/src/main/java/com/iluwatar/abstractfactory/KingdomFactory.java index 00bcd1755..e303b32f4 100644 --- a/abstract-factory/src/main/java/com/iluwatar/abstractfactory/KingdomFactory.java +++ b/abstract-factory/src/main/java/com/iluwatar/abstractfactory/KingdomFactory.java @@ -7,10 +7,10 @@ package com.iluwatar.abstractfactory; */ public interface KingdomFactory { - Castle createCastle(); + Castle createCastle(); - King createKing(); + King createKing(); - Army createArmy(); + Army createArmy(); } diff --git a/abstract-factory/src/main/java/com/iluwatar/abstractfactory/OrcArmy.java b/abstract-factory/src/main/java/com/iluwatar/abstractfactory/OrcArmy.java index 108700511..de16e5007 100644 --- a/abstract-factory/src/main/java/com/iluwatar/abstractfactory/OrcArmy.java +++ b/abstract-factory/src/main/java/com/iluwatar/abstractfactory/OrcArmy.java @@ -7,10 +7,10 @@ package com.iluwatar.abstractfactory; */ public class OrcArmy implements Army { - static final String DESCRIPTION = "This is the Orc Army!"; + static final String DESCRIPTION = "This is the Orc Army!"; - @Override - public String getDescription() { - return DESCRIPTION; - } + @Override + public String getDescription() { + return DESCRIPTION; + } } diff --git a/abstract-factory/src/main/java/com/iluwatar/abstractfactory/OrcCastle.java b/abstract-factory/src/main/java/com/iluwatar/abstractfactory/OrcCastle.java index 5012f9200..b355744ce 100644 --- a/abstract-factory/src/main/java/com/iluwatar/abstractfactory/OrcCastle.java +++ b/abstract-factory/src/main/java/com/iluwatar/abstractfactory/OrcCastle.java @@ -7,10 +7,10 @@ package com.iluwatar.abstractfactory; */ public class OrcCastle implements Castle { - static final String DESCRIPTION = "This is the Orc castle!"; + static final String DESCRIPTION = "This is the Orc castle!"; - @Override - public String getDescription() { - return DESCRIPTION; - } + @Override + public String getDescription() { + return DESCRIPTION; + } } diff --git a/abstract-factory/src/main/java/com/iluwatar/abstractfactory/OrcKing.java b/abstract-factory/src/main/java/com/iluwatar/abstractfactory/OrcKing.java index a5657d4e4..eac96913f 100644 --- a/abstract-factory/src/main/java/com/iluwatar/abstractfactory/OrcKing.java +++ b/abstract-factory/src/main/java/com/iluwatar/abstractfactory/OrcKing.java @@ -7,10 +7,10 @@ package com.iluwatar.abstractfactory; */ public class OrcKing implements King { -static final String DESCRIPTION = "This is the Orc king!"; - - @Override - public String getDescription() { - return DESCRIPTION; - } + static final String DESCRIPTION = "This is the Orc king!"; + + @Override + public String getDescription() { + return DESCRIPTION; + } } diff --git a/abstract-factory/src/main/java/com/iluwatar/abstractfactory/OrcKingdomFactory.java b/abstract-factory/src/main/java/com/iluwatar/abstractfactory/OrcKingdomFactory.java index 4fdea6656..18301c955 100644 --- a/abstract-factory/src/main/java/com/iluwatar/abstractfactory/OrcKingdomFactory.java +++ b/abstract-factory/src/main/java/com/iluwatar/abstractfactory/OrcKingdomFactory.java @@ -7,16 +7,15 @@ package com.iluwatar.abstractfactory; */ public class OrcKingdomFactory implements KingdomFactory { - public Castle createCastle() { - return new OrcCastle(); - } + public Castle createCastle() { + return new OrcCastle(); + } - public King createKing() { - return new OrcKing(); - } - - public Army createArmy() { - return new OrcArmy(); - } + public King createKing() { + return new OrcKing(); + } + public Army createArmy() { + return new OrcArmy(); + } } diff --git a/abstract-factory/src/test/java/com/iluwatar/abstractfactory/AppTest.java b/abstract-factory/src/test/java/com/iluwatar/abstractfactory/AppTest.java index 4d3659245..5e3869fc8 100644 --- a/abstract-factory/src/test/java/com/iluwatar/abstractfactory/AppTest.java +++ b/abstract-factory/src/test/java/com/iluwatar/abstractfactory/AppTest.java @@ -1,4 +1,5 @@ package com.iluwatar.abstractfactory; + import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; @@ -7,71 +8,71 @@ import org.junit.Test; public class AppTest { - private App app = new App(); - private KingdomFactory elfFactory; - private KingdomFactory orcFactory; - - @Before - public void setUp() { - elfFactory = app.getElfKingdomFactory(); - orcFactory = app.getOrcKingdomFactory(); - } - - @Test - public void king() { - final King elfKing = app.getKing(elfFactory); - assertTrue(elfKing instanceof ElfKing); - assertEquals(ElfKing.DESCRIPTION, elfKing.getDescription()); - final King orcKing = app.getKing(orcFactory); - assertTrue(orcKing instanceof OrcKing); - assertEquals(OrcKing.DESCRIPTION, orcKing.getDescription()); - } - - @Test - public void castle() { - final Castle elfCastle = app.getCastle(elfFactory); - assertTrue(elfCastle instanceof ElfCastle); - assertEquals(ElfCastle.DESCRIPTION, elfCastle.getDescription()); - final Castle orcCastle = app.getCastle(orcFactory); - assertTrue(orcCastle instanceof OrcCastle); - assertEquals(OrcCastle.DESCRIPTION, orcCastle.getDescription()); - } - - @Test - public void army() { - final Army elfArmy = app.getArmy(elfFactory); - assertTrue(elfArmy instanceof ElfArmy); - assertEquals(ElfArmy.DESCRIPTION, elfArmy.getDescription()); - final Army orcArmy = app.getArmy(orcFactory); - assertTrue(orcArmy instanceof OrcArmy); - assertEquals(OrcArmy.DESCRIPTION, orcArmy.getDescription()); - } - - @Test - public void createElfKingdom() { - app.createKingdom(elfFactory); - final King king = app.getKing(); - final Castle castle = app.getCastle(); - final Army army = app.getArmy(); - assertTrue(king instanceof ElfKing); - assertEquals(ElfKing.DESCRIPTION, king.getDescription()); - assertTrue(castle instanceof ElfCastle); - assertEquals(ElfCastle.DESCRIPTION, castle.getDescription()); - assertTrue(army instanceof ElfArmy); - assertEquals(ElfArmy.DESCRIPTION, army.getDescription()); - } - - @Test - public void createOrcKingdom() { - app.createKingdom(orcFactory); - final King king = app.getKing(); - final Castle castle = app.getCastle(); - final Army army = app.getArmy(); - assertTrue(king instanceof OrcKing); - assertEquals(OrcKing.DESCRIPTION, king.getDescription()); - assertTrue(castle instanceof OrcCastle); - assertEquals(OrcCastle.DESCRIPTION, castle.getDescription()); - assertTrue(army instanceof OrcArmy); - assertEquals(OrcArmy.DESCRIPTION, army.getDescription()); - } + private App app = new App(); + private KingdomFactory elfFactory; + private KingdomFactory orcFactory; + + @Before + public void setUp() { + elfFactory = app.getElfKingdomFactory(); + orcFactory = app.getOrcKingdomFactory(); + } + + @Test + public void king() { + final King elfKing = app.getKing(elfFactory); + assertTrue(elfKing instanceof ElfKing); + assertEquals(ElfKing.DESCRIPTION, elfKing.getDescription()); + final King orcKing = app.getKing(orcFactory); + assertTrue(orcKing instanceof OrcKing); + assertEquals(OrcKing.DESCRIPTION, orcKing.getDescription()); + } + + @Test + public void castle() { + final Castle elfCastle = app.getCastle(elfFactory); + assertTrue(elfCastle instanceof ElfCastle); + assertEquals(ElfCastle.DESCRIPTION, elfCastle.getDescription()); + final Castle orcCastle = app.getCastle(orcFactory); + assertTrue(orcCastle instanceof OrcCastle); + assertEquals(OrcCastle.DESCRIPTION, orcCastle.getDescription()); + } + + @Test + public void army() { + final Army elfArmy = app.getArmy(elfFactory); + assertTrue(elfArmy instanceof ElfArmy); + assertEquals(ElfArmy.DESCRIPTION, elfArmy.getDescription()); + final Army orcArmy = app.getArmy(orcFactory); + assertTrue(orcArmy instanceof OrcArmy); + assertEquals(OrcArmy.DESCRIPTION, orcArmy.getDescription()); + } + + @Test + public void createElfKingdom() { + app.createKingdom(elfFactory); + final King king = app.getKing(); + final Castle castle = app.getCastle(); + final Army army = app.getArmy(); + assertTrue(king instanceof ElfKing); + assertEquals(ElfKing.DESCRIPTION, king.getDescription()); + assertTrue(castle instanceof ElfCastle); + assertEquals(ElfCastle.DESCRIPTION, castle.getDescription()); + assertTrue(army instanceof ElfArmy); + assertEquals(ElfArmy.DESCRIPTION, army.getDescription()); + } + + @Test + public void createOrcKingdom() { + app.createKingdom(orcFactory); + final King king = app.getKing(); + final Castle castle = app.getCastle(); + final Army army = app.getArmy(); + assertTrue(king instanceof OrcKing); + assertEquals(OrcKing.DESCRIPTION, king.getDescription()); + assertTrue(castle instanceof OrcCastle); + assertEquals(OrcCastle.DESCRIPTION, castle.getDescription()); + assertTrue(army instanceof OrcArmy); + assertEquals(OrcArmy.DESCRIPTION, army.getDescription()); + } }