10번째 줄: | 10번째 줄: | ||
==예제 (java)== | ==예제 (java)== | ||
<source lang='java'> | <source lang='java'> | ||
interface CarFactory { | |||
public Car makeCar(); | |||
} | } | ||
interface Car { | |||
public class | public String getType(); | ||
} | |||
class SedanFactory implements CarFactory { | |||
public Car makeCar() { | |||
return new Sedan(); | |||
} | |||
} | |||
class Sedan implements Car { | |||
public String getType() { | |||
return "Sedan"; | |||
} | |||
} | |||
public class Main { | |||
public static final void main(String[] args) { | |||
SedanFactory sedanFactory = new SedanFactory(); | |||
Car car = sedanFactory.makeCar(); | |||
System.out.println("Type: " + car.getType() ); | |||
} | |||
} | } | ||
</source> | </source> |
2013년 2월 26일 (화) 07:16 판
1 개요
- factory method pattern; factory method, factory pattern
- 팩토리 메소드 패턴, 팩토리 메서드, 팩토리 패턴
- 하위클래스에서 인스턴스 생성하도록 하는 구조
- 공장에서 제품을 만들어내듯, OO공장 인스턴스가 OO을 만들어내는 구조
- 추상 단계[1]에서는 생성하려는 객체의 클래스를 정확히 지정하지 않음
2 예제 (java)
Java
Copy
interface CarFactory {
public Car makeCar();
}
interface Car {
public String getType();
}
class SedanFactory implements CarFactory {
public Car makeCar() {
return new Sedan();
}
}
class Sedan implements Car {
public String getType() {
return "Sedan";
}
}
public class Main {
public static final void main(String[] args) {
SedanFactory sedanFactory = new SedanFactory();
Car car = sedanFactory.makeCar();
System.out.println("Type: " + car.getType() );
}
}
3 같이 보기
4 주석
- ↑ interface 또는 abstract class
5 참고 자료
편집자 Jmnote
로그인하시면 댓글을 쓸 수 있습니다.