login
|
join
professional documents
home
Upload
docsters
Upload
all docs
legal
business
financial
technology
educational
creative
BUZZ
Template Method Pattern
Categories
business
Tags
template
be first to review
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 不可役者たち要素的なアクション群役者の個性=具体的抽象的
Public Domain
views:
311
downloads:
0
rating:
not rated
reviews:
0
posted:
2/2/2008
language:
English
related docs
other docs by this user
Pattern workflow template
shared by:
anonymous
on:
2/2/2008
|
views:
128
|
downloads:
4
|
comments:
0
|
category:
business
Pattern+workflow+template
shared by:
trepid
on:
4/7/2008
|
views:
27
|
downloads:
0
|
comments:
0
|
category:
Pattern+workflow+template[1]
shared by:
trepid
on:
4/7/2008
|
views:
25
|
downloads:
1
|
comments:
0
|
category:
business
Pattern+workflow+template[2]
shared by:
trepid
on:
4/7/2008
|
views:
67
|
downloads:
0
|
comments:
0
|
category:
business
Free Powerpoint Template 2 Tone Pattern Navy
shared by:
MissPowerPoint
on:
3/10/2008
|
views:
86
|
downloads:
2
|
comments:
0
|
category:
creative
Free Powerpoint Template 2 Tone Pattern Purple
shared by:
MissPowerPoint
on:
3/10/2008
|
views:
246
|
downloads:
1
|
comments:
0
|
category:
creative
Free Powerpoint Template 2 Tone Pattern Red
shared by:
MissPowerPoint
on:
3/10/2008
|
views:
92
|
downloads:
3
|
comments:
0
|
category:
creative
Free Powerpoint Template 2 Tone Pattern Teal
shared by:
MissPowerPoint
on:
3/10/2008
|
views:
90
|
downloads:
1
|
comments:
0
|
category:
creative
Free Powerpoint Template 2 Tone Pattern
shared by:
MissPowerPoint
on:
3/10/2008
|
views:
78
|
downloads:
1
|
comments:
0
|
category:
creative