최근 포토로그


2008/08/26 01:17

[DesignPattern - Bridge] sample1 study. note

Design Pattern - Builder

1. 클래스다이어그램
2. Source
  • Display.java
    package com.dazzilove.bridge.smaple1;

    public class Display {
    private DisplayImpl displayImpl;

    public Display(DisplayImpl displayImpl) {
    this.displayImpl = displayImpl;
    }

    public void open() {
    displayImpl.rawOpen();
    }

    public void print() {
    displayImpl.rawPrint();
    }

    public void close() {
    displayImpl.rawClose();
    }

    public final void display() {
    open();
    print();
    close();
    }
    }
  • CountDisplay.java
    package com.dazzilove.bridge.smaple1;

    public class CountDisplay extends Display {
    public CountDisplay(DisplayImpl displayImpl) {
    super(displayImpl);
    }

    public void multiDisplay(int times) {
    open();
    for(int i=0; i print();
    }
    close();
    }
    }
  • DisplayImpl.java
    package com.dazzilove.bridge.smaple1;

    public abstract class DisplayImpl {
    public abstract void rawOpen();
    public abstract void rawPrint();
    public abstract void rawClose();
    }
  • StringDisplayImpl.java
    package com.dazzilove.bridge.smaple1;

    public class StringDisplayImpl extends DisplayImpl {
    private String string;
    private int width;

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

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

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

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

    private void printLine() {
    System.out.print("+");
    for(int i=0; i System.out.print("-");
    }
    System.out.println("+");
    }
    }
  • Main.java
    package com.dazzilove.bridge.smaple1;

    public class Main {
    public static void main(String[] args) {
    Display d1 = new Display(new StringDisplayImpl("Hello, Korea."));
    Display d2 = new CountDisplay(new StringDisplayImpl("Hello, World."));
    CountDisplay d3 = new CountDisplay(new StringDisplayImpl("Hellow, Universe."));

    d1.display();
    d2.display();
    d3.display();
    d3.multiDisplay(5);
    }
    }
3. 결과출력

트랙백

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

핑백

  • dazzilove : 디자인 패턴 공부 2008-08-26 01:23:12 #

    ... Factory sample1 : "Java 언어로 배우는 디자인 패턴 입문" Chapter8. Abstract Factory- 관련된 부품을 조립해서 제품을 만든다.Bridge sample1 : "Java 언어로 배우는 디자인 패턴 입문" Chapter9. Bridge- 기능의 계층과 구현의 계층을 분리한다. ... more

덧글

덧글 입력 영역



미투데이

문화꽃 키우기