added abstract-factory sample
This commit is contained in:
20
abstract-factory/src/main/java/com/iluwatar/App.java
Normal file
20
abstract-factory/src/main/java/com/iluwatar/App.java
Normal file
@ -0,0 +1,20 @@
|
||||
package com.iluwatar;
|
||||
|
||||
public class App
|
||||
{
|
||||
public static void main( String[] args )
|
||||
{
|
||||
createKingdom(new ElfKingdomFactory());
|
||||
createKingdom(new OrcKingdomFactory());
|
||||
}
|
||||
|
||||
public static void createKingdom(KingdomFactory factory) {
|
||||
King king = factory.createKing();
|
||||
Castle castle = factory.createCastle();
|
||||
Army army = factory.createArmy();
|
||||
System.out.println("The kingdom was created.");
|
||||
System.out.println(king);
|
||||
System.out.println(castle);
|
||||
System.out.println(army);
|
||||
}
|
||||
}
|
5
abstract-factory/src/main/java/com/iluwatar/Army.java
Normal file
5
abstract-factory/src/main/java/com/iluwatar/Army.java
Normal file
@ -0,0 +1,5 @@
|
||||
package com.iluwatar;
|
||||
|
||||
public interface Army {
|
||||
|
||||
}
|
5
abstract-factory/src/main/java/com/iluwatar/Castle.java
Normal file
5
abstract-factory/src/main/java/com/iluwatar/Castle.java
Normal file
@ -0,0 +1,5 @@
|
||||
package com.iluwatar;
|
||||
|
||||
public interface Castle {
|
||||
|
||||
}
|
10
abstract-factory/src/main/java/com/iluwatar/ElfArmy.java
Normal file
10
abstract-factory/src/main/java/com/iluwatar/ElfArmy.java
Normal file
@ -0,0 +1,10 @@
|
||||
package com.iluwatar;
|
||||
|
||||
public class ElfArmy implements Army {
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "This is the Elven Army!";
|
||||
}
|
||||
|
||||
}
|
10
abstract-factory/src/main/java/com/iluwatar/ElfCastle.java
Normal file
10
abstract-factory/src/main/java/com/iluwatar/ElfCastle.java
Normal file
@ -0,0 +1,10 @@
|
||||
package com.iluwatar;
|
||||
|
||||
public class ElfCastle implements Castle {
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "This is the Elven castle!";
|
||||
}
|
||||
|
||||
}
|
10
abstract-factory/src/main/java/com/iluwatar/ElfKing.java
Normal file
10
abstract-factory/src/main/java/com/iluwatar/ElfKing.java
Normal file
@ -0,0 +1,10 @@
|
||||
package com.iluwatar;
|
||||
|
||||
public class ElfKing implements King {
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "This is the Elven king!";
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,17 @@
|
||||
package com.iluwatar;
|
||||
|
||||
public class ElfKingdomFactory implements KingdomFactory {
|
||||
|
||||
public Castle createCastle() {
|
||||
return new ElfCastle();
|
||||
}
|
||||
|
||||
public King createKing() {
|
||||
return new ElfKing();
|
||||
}
|
||||
|
||||
public Army createArmy() {
|
||||
return new ElfArmy();
|
||||
}
|
||||
|
||||
}
|
5
abstract-factory/src/main/java/com/iluwatar/King.java
Normal file
5
abstract-factory/src/main/java/com/iluwatar/King.java
Normal file
@ -0,0 +1,5 @@
|
||||
package com.iluwatar;
|
||||
|
||||
public interface King {
|
||||
|
||||
}
|
@ -0,0 +1,9 @@
|
||||
package com.iluwatar;
|
||||
|
||||
public interface KingdomFactory {
|
||||
|
||||
Castle createCastle();
|
||||
King createKing();
|
||||
Army createArmy();
|
||||
|
||||
}
|
10
abstract-factory/src/main/java/com/iluwatar/OrcArmy.java
Normal file
10
abstract-factory/src/main/java/com/iluwatar/OrcArmy.java
Normal file
@ -0,0 +1,10 @@
|
||||
package com.iluwatar;
|
||||
|
||||
public class OrcArmy implements Army {
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "This is the Orcish Army!";
|
||||
}
|
||||
|
||||
}
|
10
abstract-factory/src/main/java/com/iluwatar/OrcCastle.java
Normal file
10
abstract-factory/src/main/java/com/iluwatar/OrcCastle.java
Normal file
@ -0,0 +1,10 @@
|
||||
package com.iluwatar;
|
||||
|
||||
public class OrcCastle implements Castle {
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "This is the Orcish castle!";
|
||||
}
|
||||
|
||||
}
|
10
abstract-factory/src/main/java/com/iluwatar/OrcKing.java
Normal file
10
abstract-factory/src/main/java/com/iluwatar/OrcKing.java
Normal file
@ -0,0 +1,10 @@
|
||||
package com.iluwatar;
|
||||
|
||||
public class OrcKing implements King {
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "This is the Orc king!";
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,17 @@
|
||||
package com.iluwatar;
|
||||
|
||||
public class OrcKingdomFactory implements KingdomFactory {
|
||||
|
||||
public Castle createCastle() {
|
||||
return new OrcCastle();
|
||||
}
|
||||
|
||||
public King createKing() {
|
||||
return new OrcKing();
|
||||
}
|
||||
|
||||
public Army createArmy() {
|
||||
return new OrcArmy();
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user