Skip to content

Commit ca5ed35

Browse files
author
chrish
committed
Refactoring FactoryMethodPattern.
1 parent b97aebb commit ca5ed35

File tree

18 files changed

+112
-42
lines changed

18 files changed

+112
-42
lines changed

CreationalDesignPattern/FactoryMethodPattern/Java/FactoryMethodDemo/Main.java renamed to Creational/FactoryMethod/src/io/csie/chris/Main.java

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,28 @@
1+
package io.csie.chris;
2+
3+
import io.csie.chris.animal.Animal;
4+
import io.csie.chris.factory.*;
5+
16
public class Main {
7+
28
public static void main(String args[]) {
3-
// Created by Dog factory
9+
10+
// Created by io.csie.chris.animal.Dog factory
411
IAnimalFactory animalFactory1 = new DogFactory();
512
Animal animal1 = animalFactory1.createAnimal();
613
System.out.println(animal1.makeSound());
714

8-
// Created by Cat factory
15+
// Created by io.csie.chris.animal.Cat factory
916
IAnimalFactory animalFactory2 = new CatFactory();
1017
Animal animal2 = animalFactory2.createAnimal();
1118
System.out.println(animal2.makeSound());
1219

13-
// Created by Fox factory
20+
// Created by io.csie.chris.animal.Fox factory
1421
IAnimalFactory animalFactory3 = new FoxFactory();
1522
Animal animal3 = animalFactory3.createAnimal();
1623
System.out.println(animal3.makeSound());
1724

18-
// Created by Monster factory
25+
// Created by io.csie.chris.animal.Monster factory
1926
IAnimalFactory animalFactory4 = new MonsterFactory();
2027
Animal animal4 = animalFactory4.createAnimal();
2128
System.out.println(animal4.makeSound());

CreationalDesignPattern/FactoryMethodPattern/Java/FactoryMethodDemo/Animal.java renamed to Creational/FactoryMethod/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 Fox extends Animal {
6+
7+
@Override
8+
public String makeSound() {
9+
return AnimalType.Fox.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 Monster extends Animal {
6+
7+
@Override
8+
public String makeSound() {
9+
return AnimalType.Monster.getSound();
10+
}
11+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package io.csie.chris.animal.common;
2+
3+
public enum AnimalType {
4+
5+
Cat("Meow"),
6+
7+
Dog("Bark"),
8+
9+
Fox("Ssbb"),
10+
11+
Monster("Unknown");
12+
13+
private String sound;
14+
15+
private AnimalType(String sound){
16+
this.sound = sound;
17+
}
18+
19+
public String getSound() {
20+
return this.sound;
21+
}
22+
}

CreationalDesignPattern/FactoryMethodPattern/Java/FactoryMethodDemo/CatFactory.java renamed to Creational/FactoryMethod/src/io/csie/chris/factory/CatFactory.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,13 @@
1+
package io.csie.chris.factory;
2+
3+
import io.csie.chris.animal.Animal;
4+
import io.csie.chris.animal.Cat;
5+
16
/**
27
* Created by chris on 12/3/14.
38
*/
49
public class CatFactory implements IAnimalFactory {
10+
511
@Override
612
public Animal createAnimal() {
713
return new Cat();

CreationalDesignPattern/FactoryMethodPattern/Java/FactoryMethodDemo/DogFactory.java renamed to Creational/FactoryMethod/src/io/csie/chris/factory/DogFactory.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,10 @@
1+
package io.csie.chris.factory;
2+
3+
import io.csie.chris.animal.Animal;
4+
import io.csie.chris.animal.Dog;
5+
16
public class DogFactory implements IAnimalFactory {
7+
28
@Override
39
public Animal createAnimal() {
410
return new Dog();

CreationalDesignPattern/FactoryMethodPattern/Java/FactoryMethodDemo/FoxFactory.java renamed to Creational/FactoryMethod/src/io/csie/chris/factory/FoxFactory.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,10 @@
1+
package io.csie.chris.factory;
2+
3+
import io.csie.chris.animal.Animal;
4+
import io.csie.chris.animal.Fox;
5+
16
public class FoxFactory implements IAnimalFactory {
7+
28
@Override
39
public Animal createAnimal() {
410
return new Fox();

0 commit comments

Comments
 (0)