최근 포토로그


2008/09/17 00:22

[DesignPattern - Facade] sample1 study. note

Design Pattern - Facade

1. 클래스다이어그램
2. Source
  • maildata.txt
    a1@dazzilove.com=Kim
    a2@dazzilove.com=Lee
    a3@dazzilove.com=Kang
    a4@dazzilove.com=Pak
  • Database.java
    package com.dazzilove.facade.sample1.pagemaker;

    import java.io.FileInputStream;
    import java.io.IOException;
    import java.util.Properties;

    public class Database {
    private Database() {
    //new로 인스턴스를 생성시키지 않기 위해 private 선언
    }
    //데이터베이스명으로부터 Properties를 얻는다.
    public static Properties getProperties(String dbName) {
    String fileName = dbName + ".txt";
    Properties prop = new Properties();
    try {
    prop.load(new FileInputStream(fileName));
    } catch(IOException e) {
    System.out.println("Warning : " + fileName + " is not found.");
    }
    return prop;
    }
    }
  • HtmlWriter.java
    package com.dazzilove.facade.sample1.pagemaker;

    import java.io.IOException;
    import java.io.Writer;

    public class HtmlWriter {
    private Writer writer;
    public HtmlWriter(Writer writer) {
    this.writer = writer;
    }
    public void title(String title) throws IOException {
    StringBuilder sb = new StringBuilder();
    sb.append("<html>");
    sb.append("<head>");
    sb.append("<title>");
    sb.append(title);
    sb.append("</title>");
    sb.append("</head>");
    sb.append("<body>");
    sb.append("<h1>");
    sb.append(title);
    sb.append("</h1>");
    writer.write(sb.toString());
    }
    public void paragraph(String msg) throws IOException {
    writer.write("<p>" + msg + "</p>");
    }
    public void link(String href, String caption) throws IOException {
    paragraph("<a href=\"" + href + "\">" + caption + "</a>");
    }
    public void mailTo(String mailAddr, String userNmae) throws IOException {
    link("mailto:" + mailAddr, userNmae);
    }
    public void close() throws IOException {
    StringBuilder sb = new StringBuilder();
    sb.append("</body>");
    sb.append("</html>");
    writer.write(sb.toString());
    writer.close();
    }
    }
  • PageMaker.java
    package com.dazzilove.facade.sample1.pagemaker;

    import java.io.FileWriter;
    import java.io.IOException;
    import java.util.Properties;

    public class PageMaker {
    private PageMaker() {
    //인스턴스는 만들지 않기 때문에 private 선언한다.
    }
    public static void makeWelcomePage(String mailAddr, String fileName) {
    try {
    Properties mailProp = Database.getProperties("D:\\dazzilove\\workspace\\DesignPatternStudy\\bin\\com\\dazzilove\\facade\\sample1\\maildata");
    String userName = mailProp.getProperty(mailAddr);
    HtmlWriter writer = new HtmlWriter(new FileWriter(fileName));
    writer.title("Welcome to " + userName + "'s page!");
    writer.paragraph(userName + "의 페이지에 오신걸 환경합니다.");
    writer.paragraph("메일이 기다리고 있겠습니다.");
    writer.mailTo(mailAddr, userName);
    writer.close();
    System.out.println(fileName + " is created for " + mailAddr + "(" + userName + ")");
    } catch(IOException e) {
    e.printStackTrace();
    }
    }
    }
  • Main.java
    package com.dazzilove.facade.sample1;

    import com.dazzilove.facade.sample1.pagemaker.PageMaker;

    public class Main {
    public static void main(String[] args) {
    PageMaker.makeWelcomePage("a1@dazzilove.com", "a1Welcome.html");
    PageMaker.makeWelcomePage("a2@dazzilove.com", "a2Welcome.html");
    PageMaker.makeWelcomePage("a3@dazzilove.com", "a3Welcome.html");
    PageMaker.makeWelcomePage("a4@dazzilove.com", "a4Welcome.html");
    }
    }
3. 결과출력

트랙백

이 글과 관련된 글 쓰기 (트랙백 보내기)
TrackbackURL : http://dazzilove.egloos.com/tb/836065 [도움말]

핑백

  • dazzilove : 디자인 패턴 공부 2008-09-17 00:25:25 #

    ... 어지지 않을까? 늦어진다.sample1 : "Java 언어로 배우는 디자인 패턴 입문" Chapter14. Chain of Responsibility- 책임 떠넘기기Facade sample1 : "Java 언어로 배우는 디자인 패턴 입문" Chapter15. Pacade - 간단한 창구 ... more

덧글

덧글 입력 영역



미투데이

문화꽃 키우기