TemplateMethodパターン Java

2015/07/17

About Java design pattern

デザインパターンの一つであるTemplateMethodパターンについて記述する。

なぜTemplateMethodパターン?



スーパークラスで処理の枠組みを決め、サブクラスで具体的な内容を定めるデザインパターンである。
似た処理を一つの関数にまとめるのに設計対し、TemplateMethodは1つのクラスとしてまとめている。
この設計思想がTemplateMethodパターンである。

サンプルコード

抽象的なスーパークラス。

1
2
3
4
5
6
7
8
9
10
11
12
public abstract class AbstractDisplay {
public abstract void open();
public abstract void close();

public final void display() {
open();
for (int i =0; i < 3; i++) {
System.out.println();
}
close();
}
}

具象的なサブクラス。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class CharDisplay extends AbstractDisplay {
private char cha;

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

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

public void close() {
System.out.println("close");
}

}

Mainクラス。

1
2
3
4
5
6
7
8
9
10
11
public class Main {
public static void main(String[] args) {
AbstractDisplay cd = new CharDisplay('A');
AbstractDisplay sd = new StringDisplay("Design Pattern");
AbstractDisplay sd2 = new StringDisplay("Template Pattern");

cd.display();
sd.display();
sd2.display();
}
}