Skip to content

Commit

Permalink
Factory Method Pattern 업데이트
Browse files Browse the repository at this point in the history
  • Loading branch information
ZANGZANGS committed Dec 4, 2021
1 parent de888d4 commit 9e8f8d2
Show file tree
Hide file tree
Showing 6 changed files with 81 additions and 0 deletions.
8 changes: 8 additions & 0 deletions src/gof/dp/factorymethod/Avante.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package gof.dp.factorymethod;

public class Avante extends Car{

public Avante(){
carType = "avante";
}
}
9 changes: 9 additions & 0 deletions src/gof/dp/factorymethod/Car.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package gof.dp.factorymethod;

public abstract class Car {
protected String carType;

public String toString(){
return carType;
}
}
6 changes: 6 additions & 0 deletions src/gof/dp/factorymethod/CarFactory.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package gof.dp.factorymethod;

public abstract class CarFactory {
public abstract Car createCar(String name);
public abstract Car fixedCar(String owner);
}
13 changes: 13 additions & 0 deletions src/gof/dp/factorymethod/CarTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package gof.dp.factorymethod;

public class CarTest {
public static void main(String[] args){
CarFactory carFactory = new HyunKiFactory();
Car newCar = carFactory.createCar("sorento");

System.out.println(newCar);

Car myCar = carFactory.fixedCar("zangzangs");
System.out.println(myCar);
}
}
35 changes: 35 additions & 0 deletions src/gof/dp/factorymethod/HyunKiFactory.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package gof.dp.factorymethod;

import java.util.HashMap;

public class HyunKiFactory extends CarFactory{

HashMap<String, Car> carMap = new HashMap<>();//owner, car

@Override
public Car createCar(String name) {

Car car = null;

if("avante".equals(name)){
car = new Avante();
}else if("sorento".equals(name)){
car = new Sorento();
}

return car;
}

@Override
public Car fixedCar(String owner) {

Car myCar = carMap.get(owner);

if(null == myCar){
if (owner.equals("zangzangs")){
myCar = new Avante();
}
}
return myCar;
}
}
10 changes: 10 additions & 0 deletions src/gof/dp/factorymethod/Sorento.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package gof.dp.factorymethod;

public class Sorento extends Car{

public Sorento(){
carType = "sorento";
}


}

0 comments on commit 9e8f8d2

Please sign in to comment.