professional documents
home
Upload
docsters
Upload
Powerpoint

Template Method Pattern center doc

business

template

Template Method PatternS. Yukitayukita@k.hosei.ac.jpTemplate Pattern2Template Methodパターン•スーパークラスにテンプレートとなるメソッドの定義をおく。定型処理の枠組みを決める。–テンプレートはpublic final で修飾される。•テンプレートメソッドは要素的なアクションを実行して定型処理のロジックを実現する。–要素アクションは抽象メソッドとしておく。–つまりabstract protected がよいだろう。–サブクラスではそれらの抽象メソッドを具体的に定義する。–これらはhook method と呼ばれる。Template Pattern3例題のクラス図AbstractDisplayopenprintclosedisplayCharDisplayopenprintcloseStringDisplayopenprintcloseTemplate Pattern4AbstractDisplay.javapublic 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(); }}Template Pattern5CharDisplay.javapublic class CharDisplay extends AbstractDisplay {private char ch;public CharDisplay(char ch) { this.ch = ch;}public void open(){System.out.print("<<"); }public void print(){System.out.print(ch); }public void close(){System.out.println(">>"); }}Template Pattern6StringDisplay.java (1)public class StringDisplay extends AbstractDisplay { private String string; private int width; public StringDisplay(String string) { this.string = string; this.width = string.getBytes().length; }Template Pattern7StringDisplay.java (2)public void open() { printLine(); }public void print() { System.out.println("|" + string + "|"); }public void close() { printLine(); }Template Pattern8StringDisplay.java (3)private void printLine() { System.out.print("+"); for (int i = 0; i < width; i++) { System.out.print("-"); }System.out.println("+"); }}Template Pattern9Main.javapublic class Main {public static void main(String[] args) {AbstractDisplay d1 = new CharDisplay('H');AbstractDisplay d2 = new StringDisplay("Hello, world.");AbstractDisplay d3 = new StringDisplay("こんにちは。");d1.display(); d2.display(); d3.display(); }}Template Pattern10実行結果<>+-------------+|Hello, world.||Hello, world.||Hello, world.||Hello, world.||Hello, world.|+-------------++------------+|こんにちは。||こんにちは。||こんにちは。||こんにちは。||こんにちは。|+------------+Template Pattern11パターンAbstractClassmethod1method2method3templateMethodConcreteClassmethod1method2method3Template Pattern12例題の解釈AbstractDisplayopenprintclosedisplayCharDisplayopenprintcloseStringDisplayopenprintclosetemplate method=役に伴うシナリオoverride 不可役者たち要素的なアクション群役者の個性=具体的抽象的
rate this doc
email this doc
embed this doc
add to folder
digg reddit stumble delicious
flag this doc
311
0
not rated
0
2/2/2008
English
Preview

Pattern workflow template

anonymous 2/2/2008 | 128 | 4 | 0 | business
Preview

Pattern+workflow+template

trepid 4/7/2008 | 27 | 0 | 0 |
Preview

Pattern+workflow+template[1]

trepid 4/7/2008 | 25 | 1 | 0 | business
Preview

Pattern+workflow+template[2]

trepid 4/7/2008 | 67 | 0 | 0 | business
Preview

Free Powerpoint Template 2 Tone Pattern Navy

MissPowerPoint 3/10/2008 | 86 | 2 | 0 | creative
Preview

Free Powerpoint Template 2 Tone Pattern Purple

MissPowerPoint 3/10/2008 | 246 | 1 | 0 | creative
Preview

Free Powerpoint Template 2 Tone Pattern Red

MissPowerPoint 3/10/2008 | 92 | 3 | 0 | creative
Preview

Free Powerpoint Template 2 Tone Pattern Teal

MissPowerPoint 3/10/2008 | 90 | 1 | 0 | creative
Preview

Free Powerpoint Template 2 Tone Pattern

MissPowerPoint 3/10/2008 | 78 | 1 | 0 | creative
 
review this doc