JAVA/예제

[JAVA] ch07-21. 팩토리 패턴(Factory Pattern)

밍글링글링 2017. 8. 22.
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

댓글