최근 포토로그


2008/07/21 23:51

[DesignPattern - Template Method] sample1 study. note

Design Pattern - Adapter

1. 클래스다이어그램

2. Source
  • AbstractDisplay.java
    package com.dazzilove.templatemethod.sample1;

    public abstract class AbstractDisplay {
    public abstract void open();

    public abstract void print();

    public abstract void close();

    public final void display() {
    open();
    for(int i=0; i<5; i++) {
    print();
    }
    close();
    }
    }
  • CharDisplay.java
    package com.dazzilove.templatemethod.sample1;

    public class CharDisplay extends AbstractDisplay {

    private char ch;

    public CharDisplay(char ch) {
    this.ch = ch;
    }

    @Override
    public void open() {
    System.out.print("<<");
    }

    @Override
    public void print() {
    System.out.print(ch);
    }

    @Override
    public void close() {
    System.out.println(">>");
    }
    }
  • StringDisplay.java
    package com.dazzilove.templatemethod.sample1;

    public class StringDisplay extends AbstractDisplay {

    private String string;
    private int width;

    public StringDisplay(String string) {
    this.string = string;
    this.width = string.getBytes().length;
    }

    @Override
    public void open() {
    printLine();
    }

    @Override
    public void print() {
    System.out.println("|" + string + "|");
    }

    @Override
    public void close() {
    printLine();
    }

    private void printLine() {
    StringBuilder printStr = new StringBuilder();
    printStr.append("+");
    for(int i=0; i printStr.append("-");
    }
    printStr.append("+");

    System.out.println(printStr.toString());
    }
    }
  • Main.java
    package com.dazzilove.templatemethod.sample1;

    public class Main {
    public static void main(String[] args) {
    AbstractDisplay abstractDisplay1 = new CharDisplay('H');
    AbstractDisplay abstractDisplay2 = new StringDisplay("Hellow, world.");
    AbstractDisplay abstractDisplay3 = new StringDisplay("안녕하세요");

    abstractDisplay1.display();
    abstractDisplay2.display();
    abstractDisplay3.display();
    }
    }

3. 결과화면

트랙백

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

덧글

덧글 입력 영역



미투데이

문화꽃 키우기