728x90
public class Ex21 { //Factory Pattern // 객체를 생성하는 과정이 복잡할 경우 사용
public static void main(String[] args){
new XMLParser().parse("문서");
new HTMLParser().parse("문서");
Parsable parser = ParserManager.getParser("XML");
parser.parse("a.XML");
parser = ParserManager.getParser("HTML");
parser.parse("b.HTML");
}
}
interface Parsable{
void parse(String fileName); //문서의 이름을 받아오기위해서는 String타입이 적당.
}
class XMLParser implements Parsable{
public void parse(String fileName){
System.out.println(fileName+ " XML 파싱");
}
}
class HTMLParser implements Parsable{
public void parse(String fileName){
System.out.println(fileName+ " HTML 파싱");
}
}
class ParserManager{ //팩토리 패턴(Factory Pattern) //객체 생성 과정이 복잡할 경우 사용
public static Parsable getParser(String type){ //인터페이스 타입을 사용할 경우 확장성이 좋아짐 // 코드 중복 최소화
Parsable parser = null;
if(type.equals("XML")){
parser = new XMLParser();
}else{
parser = new HTMLParser();
}
return parser;
}
}
728x90
'JAVA > 예제' 카테고리의 다른 글
[JAVA] ch08-02. 예외 처리 2 (0) | 2017.08.22 |
---|---|
[JAVA] ch08-01. 예외 처리 (0) | 2017.08.22 |
[JAVA] ch07-20. 객체 지향 20 (0) | 2017.08.22 |
[JAVA] ch07-19. 객체 지향 19 (0) | 2017.08.22 |
[JAVA] ch07-18. 객체 지향 18 (0) | 2017.08.22 |
댓글