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

2017. 8. 22. 11:46·JAVA/예제
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
'JAVA/예제' 카테고리의 다른 글
  • [JAVA] ch08-02. 예외 처리 2
  • [JAVA] ch08-01. 예외 처리
  • [JAVA] ch07-20. 객체 지향 20
  • [JAVA] ch07-19. 객체 지향 19
밍글링글링
밍글링글링
mingling - 밍글링, 밍글밍글링. 코드와 어우러지다. IT/ 프로그래밍/소스
    반응형
    250x250
  • 밍글링글링
    mingling
    밍글링글링
  • 전체
    오늘
    어제
    • 밍글링글링 (463)
      • Flutter (2)
      • 일상생활 (8)
        • 리뷰 (1)
        • 생활정보 (4)
        • 맛집 (0)
        • 여행 (0)
        • 모든정보 (3)
      • JAVA (126)
        • 개념 (6)
        • 예제 (115)
        • Exception (2)
      • C (1)
        • C (1)
        • C++ (0)
        • C# (0)
      • JS (29)
        • JavaScript (18)
        • JQuery (5)
        • AJax (0)
        • NODE.JS (6)
        • Angular.JS 2.0 (0)
      • WEB (87)
        • HTML (6)
        • CSS (61)
        • JSP (20)
        • JSTL (0)
      • FrameWork (8)
        • Spring (8)
        • BootStrap (0)
        • MyBATIS (0)
        • JUnit (0)
      • 외부 라이브러리 (5)
      • 공유 소스 관리 (5)
        • Git (5)
        • SVN (0)
      • 빅데이터 프로그래밍 (37)
        • Python (37)
        • R Programming (0)
      • DB (7)
        • ORACLE (0)
        • MySql (6)
      • Development Tools (7)
        • StarUML (0)
        • eXERD (0)
        • Eclipse (4)
      • SKILL (6)
        • Migration (0)
        • Security (6)
      • MicroSoft (0)
        • Excel (0)
        • Word (0)
      • Android (0)
      • Server (21)
        • Ubuntu (5)
        • Linux (15)
      • IOS (0)
      • XML (0)
      • 미디어 (0)
      • 공지사항 (3)
      • NETWORK (1)
      • 게임 (4)
        • 피파 (1)
        • 리니지M (0)
        • 배틀그라운드 (1)
        • 듀랑고 (2)
      • 세상 이슈 (6)
      • 일렉트론 (0)
      • 대회 소식 (4)
      • 업무 (2)
      • Express, Vue (6)
      • docker (11)
      • svelte (3)
      • 블록체인 (1)
      • IT (66)
      • Rust (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 미디어로그
    • 위치로그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    제미나이
    ubuntu
    Extension Bisect
    css tb
    자바 생성자
    nginx ssl 적용
    SSL 인증서
    클론코딩
    자바 배열
    자바 for문
    gitlab 설치
    css perspective
    Node
    java casting
    프런트엔드
    vscode
    spring java
    리눅스 설치
    css transition
    Java Array
    React Compiler
    lang rust
    vue 설치
    rust linux
    css table
    proxy pass
    자바 exception
    자바 객체 지향
    docker
    mysql db
    오류
    API 설계
    AI 코딩 에이전트
    svelte
    jsp include
    러스트
    에디터 팁
    자바 클래스
    vue cli
    nginx
    VS Code 팁
    브라우저 자동화
    nginx ssl 설정
    servlet class
    jsp parameter
    ssl 인증서 발급
    Rust lang
    AI 반도체
    티스토리 자동화
    css float
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
밍글링글링
[JAVA] ch07-21. 팩토리 패턴(Factory Pattern)
상단으로

티스토리툴바