About Java design pattern
デザインパターンの一つであるTemplateMethodパターンについて記述する。
なぜTemplateMethodパターン?
スーパークラスで処理の枠組みを決め、サブクラスで具体的な内容を定めるデザインパターンである。
似た処理を一つの関数にまとめるのに設計対し、TemplateMethodは1つのクラスとしてまとめている。
この設計思想がTemplateMethodパターンである。
サンプルコード
抽象的なスーパークラス。1
2
3
4
5
6
7
8
9
10
11
12public 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
16public 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
11public 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();
}
}