Skip to content

Commit b20f9c9

Browse files
author
chrish
committed
Refactoring AbstractFactory.
1 parent 54b556b commit b20f9c9

File tree

22 files changed

+165
-74
lines changed

22 files changed

+165
-74
lines changed

Behavioral/CommandPattern/src/io/csie/chris/Main.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
public class Main {
88

99
public static void main(String[] args) {
10+
1011
IStockFactory ibmStockFactory = new IBMStockFactory();
1112
IStock IBMStock = ibmStockFactory.createStock();
1213

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package io.csie.chris;
2+
3+
import io.csie.chris.animal.Animal;
4+
import io.csie.chris.animal.common.AnimalType;
5+
import io.csie.chris.animal.common.SpeciesType;
6+
import io.csie.chris.factory.AbstractFactory;
7+
import io.csie.chris.factory.SpeciesFactory;
8+
9+
public class Main {
10+
public static void main(String args[]) {
11+
AbstractFactory abstractFactory = new AbstractFactory();
12+
13+
SpeciesFactory speciesFactory1 = abstractFactory.getSpeciesFactory(SpeciesType.Reptile.name());
14+
Animal animal1 = speciesFactory1.getAnimal(AnimalType.Tyrannosaurus.name());
15+
System.out.println("Animal1: " + animal1.makeSound());
16+
17+
Animal animal2 = speciesFactory1.getAnimal(AnimalType.Snake.name());
18+
System.out.println("Animal2: " + animal2.makeSound());
19+
20+
SpeciesFactory speciesFactory2 = abstractFactory.getSpeciesFactory(SpeciesType.Mammal.name());
21+
Animal animal3 = speciesFactory2.getAnimal(AnimalType.Dog.name());
22+
System.out.println("Animal3: " + animal3.makeSound());
23+
24+
Animal animal4 = speciesFactory2.getAnimal(AnimalType.Cat.name());
25+
System.out.println("Animal4: " + animal4.makeSound());
26+
}
27+
}

CreationalDesignPattern/AbstractFactoryPattern/Java/AbstractFactoryDemo/Animal.java renamed to Creational/AbstractFactory/src/io/csie/chris/animal/Animal.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
package io.csie.chris.animal;
2+
13
public abstract class Animal {
4+
25
public abstract String makeSound();
36
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package io.csie.chris.animal;
2+
3+
import io.csie.chris.animal.common.AnimalType;
4+
5+
public class Cat extends Animal {
6+
7+
@Override
8+
public String makeSound() {
9+
return AnimalType.Cat.getSound();
10+
}
11+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package io.csie.chris.animal;
2+
3+
import io.csie.chris.animal.common.AnimalType;
4+
5+
public class Dog extends Animal {
6+
7+
@Override
8+
public String makeSound() {
9+
return AnimalType.Dog.getSound();
10+
}
11+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package io.csie.chris.animal;
2+
3+
import io.csie.chris.animal.common.AnimalType;
4+
5+
public class Lion extends Animal {
6+
7+
@Override
8+
public String makeSound() {
9+
return AnimalType.Lion.getSound();
10+
}
11+
}

CreationalDesignPattern/AbstractFactoryPattern/Java/AbstractFactoryDemo/Snake.java renamed to Creational/AbstractFactory/src/io/csie/chris/animal/Snake.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,14 @@
1+
package io.csie.chris.animal;
2+
3+
import io.csie.chris.animal.common.AnimalType;
4+
15
/**
26
* Created by chris on 12/1/14.
37
*/
48
public class Snake extends Animal {
9+
510
@Override
611
public String makeSound() {
7-
return "Hsi";
12+
return AnimalType.Snake.getSound();
813
}
914
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package io.csie.chris.animal;
2+
3+
import io.csie.chris.animal.common.AnimalType;
4+
5+
public class Tyrannosaurus extends Animal {
6+
7+
@Override
8+
public String makeSound() {
9+
return AnimalType.Tyrannosaurus.getSound();
10+
}
11+
}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package io.csie.chris.animal.common;
2+
3+
public enum AnimalType {
4+
5+
Cat("Meow", SpeciesType.Mammal),
6+
7+
Dog("Bark", SpeciesType.Mammal),
8+
9+
Lion("Howl", SpeciesType.Mammal),
10+
11+
Snake("Hsi", SpeciesType.Reptile),
12+
13+
Tyrannosaurus("Haou", SpeciesType.Reptile);
14+
15+
private String sound;
16+
17+
private SpeciesType speciesType;
18+
19+
AnimalType(String sound, SpeciesType speciesType) {
20+
this.sound = sound;
21+
this.speciesType = speciesType;
22+
}
23+
24+
public String getSound() {
25+
return this.sound;
26+
}
27+
28+
public SpeciesType getSpeciesType() {
29+
return speciesType;
30+
}
31+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package io.csie.chris.animal.common;
2+
3+
public enum SpeciesType {
4+
5+
Mammal,
6+
7+
Reptile;
8+
}

0 commit comments

Comments
 (0)