Abstract Factory Pattern
This commit is contained in:
2
design-pattern/src/AbstractFactory/Abstract Factory
Normal file
2
design-pattern/src/AbstractFactory/Abstract Factory
Normal file
@@ -0,0 +1,2 @@
|
||||
Abstract Factory pattern
|
||||
- 관련있는 객체 생성의 가상화
|
||||
19
design-pattern/src/AbstractFactory/Main.java
Normal file
19
design-pattern/src/AbstractFactory/Main.java
Normal file
@@ -0,0 +1,19 @@
|
||||
package AbstractFactory;
|
||||
|
||||
import AbstractFactory.abst.BikeFactory;
|
||||
import AbstractFactory.abst.Body;
|
||||
import AbstractFactory.abst.Wheel;
|
||||
import AbstractFactory.gt.GtBikeFactory;
|
||||
import AbstractFactory.sam.SamFactory;
|
||||
|
||||
public class Main {
|
||||
public static void main(String[] args) {
|
||||
// BikeFactory factory = new SamFactory();
|
||||
BikeFactory factory = new GtBikeFactory();
|
||||
Body body = factory.createBody();
|
||||
Wheel wheel = factory.createWheel();
|
||||
|
||||
System.out.println(body.getClass());
|
||||
System.out.println(wheel.getClass());
|
||||
}
|
||||
}
|
||||
7
design-pattern/src/AbstractFactory/abst/BikeFactory.java
Normal file
7
design-pattern/src/AbstractFactory/abst/BikeFactory.java
Normal file
@@ -0,0 +1,7 @@
|
||||
package AbstractFactory.abst;
|
||||
|
||||
public interface BikeFactory {
|
||||
|
||||
Body createBody();
|
||||
Wheel createWheel();
|
||||
}
|
||||
4
design-pattern/src/AbstractFactory/abst/Body.java
Normal file
4
design-pattern/src/AbstractFactory/abst/Body.java
Normal file
@@ -0,0 +1,4 @@
|
||||
package AbstractFactory.abst;
|
||||
|
||||
public interface Body {
|
||||
}
|
||||
4
design-pattern/src/AbstractFactory/abst/Wheel.java
Normal file
4
design-pattern/src/AbstractFactory/abst/Wheel.java
Normal file
@@ -0,0 +1,4 @@
|
||||
package AbstractFactory.abst;
|
||||
|
||||
public interface Wheel {
|
||||
}
|
||||
17
design-pattern/src/AbstractFactory/gt/GtBikeFactory.java
Normal file
17
design-pattern/src/AbstractFactory/gt/GtBikeFactory.java
Normal file
@@ -0,0 +1,17 @@
|
||||
package AbstractFactory.gt;
|
||||
|
||||
import AbstractFactory.abst.BikeFactory;
|
||||
import AbstractFactory.abst.Body;
|
||||
import AbstractFactory.abst.Wheel;
|
||||
|
||||
public class GtBikeFactory implements BikeFactory {
|
||||
@Override
|
||||
public Body createBody() {
|
||||
return new GtBody();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Wheel createWheel() {
|
||||
return new GtWheel();
|
||||
}
|
||||
}
|
||||
6
design-pattern/src/AbstractFactory/gt/GtBody.java
Normal file
6
design-pattern/src/AbstractFactory/gt/GtBody.java
Normal file
@@ -0,0 +1,6 @@
|
||||
package AbstractFactory.gt;
|
||||
|
||||
import AbstractFactory.abst.Body;
|
||||
|
||||
public class GtBody implements Body {
|
||||
}
|
||||
6
design-pattern/src/AbstractFactory/gt/GtWheel.java
Normal file
6
design-pattern/src/AbstractFactory/gt/GtWheel.java
Normal file
@@ -0,0 +1,6 @@
|
||||
package AbstractFactory.gt;
|
||||
|
||||
import AbstractFactory.abst.Wheel;
|
||||
|
||||
public class GtWheel implements Wheel {
|
||||
}
|
||||
6
design-pattern/src/AbstractFactory/sam/SamBody.java
Normal file
6
design-pattern/src/AbstractFactory/sam/SamBody.java
Normal file
@@ -0,0 +1,6 @@
|
||||
package AbstractFactory.sam;
|
||||
|
||||
import AbstractFactory.abst.Body;
|
||||
|
||||
public class SamBody implements Body {
|
||||
}
|
||||
17
design-pattern/src/AbstractFactory/sam/SamFactory.java
Normal file
17
design-pattern/src/AbstractFactory/sam/SamFactory.java
Normal file
@@ -0,0 +1,17 @@
|
||||
package AbstractFactory.sam;
|
||||
|
||||
import AbstractFactory.abst.BikeFactory;
|
||||
import AbstractFactory.abst.Body;
|
||||
import AbstractFactory.abst.Wheel;
|
||||
|
||||
public class SamFactory implements BikeFactory {
|
||||
@Override
|
||||
public Body createBody() {
|
||||
return new SamBody();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Wheel createWheel() {
|
||||
return new SamWheel();
|
||||
}
|
||||
}
|
||||
6
design-pattern/src/AbstractFactory/sam/SamWheel.java
Normal file
6
design-pattern/src/AbstractFactory/sam/SamWheel.java
Normal file
@@ -0,0 +1,6 @@
|
||||
package AbstractFactory.sam;
|
||||
|
||||
import AbstractFactory.abst.Wheel;
|
||||
|
||||
public class SamWheel implements Wheel {
|
||||
}
|
||||
Reference in New Issue
Block a user