JAVA/예제

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

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