1. 程式人生 > >Template Method模式(模板模式)

Template Method模式(模板模式)

public class StringDisplay extends AbstractDisplay {    // StringDisplay也是AbstractDisplay的子類 
    private String string;                              // 需要顯示的字串
    private int width;                                  // 以位元組為單位計算出的字串長度
    public StringDisplay(String string) {               // 建構函式中接收的字串被
        this.string = string;                           // 儲存在欄位中
        this.width = string.getBytes().length;          // 同時將字串的位元組長度也儲存在欄位中,以供後面使用 
    }
    public void open() {                                // 重寫的open方法
        printLine();                                    // 呼叫該類的printLine方法畫線
    }
    public void print() {                               // print方法
        System.out.println("|" + string + "|");         // 給儲存在欄位中的字串前後分別加上"|"並顯示出來 
    }
    public void close() {                               // close方法
        printLine();                                    // 與open方法一樣,呼叫printLine方法畫線
    }
    private void printLine() {                          // 被open和close方法呼叫。由於可見性是private,因此只能在本類中被呼叫 
        System.out.print("+");                          // 顯示錶示方框的角的"+"
        for (int i = 0; i < width; i++) {               // 顯示width個"-"
            System.out.print("-");                      // 組成方框的邊框
        }
        System.out.println("+");                        // /顯示錶示方框的角的"+"
    }