- 追加された行はこのように表示されます。
- 削除された行は
このように表示されます。
!!!オブジェクト指向プログラミング 第12回 2005/11/28
!!テンプレートメソッド
似通ったコードをまとめ、細かな違いはサブクラスに任せる。
{{ref_image "templatem.png"}}
!!演習
+配布したプリントのプログラムを完成させる。
+次のプログラムを作る。
++コンストラクタの引数で指定した一文字を5個表示するクラスCharDisplay
++コンストラクタの引数で指定した文字列を5個表示するクラスStringDisplay
++上記二つのクラスのスーパークラスAbstractDisply
!実行例
<<HHHHH>> ← AbstractDisplay d1 = new CharDisplay('H');
d1.display();
+------------+ ← AbstractDisplay d2 = new StringDisplay("Hello World.");
|Hello World.| d2.display();
|Hello World.|
|Hello World.|
|Hello World.|
|Hello World.|
+------------+
+----------+ ← AbstractDisplay d3 = new StringDisplay("こんにちは");
|こんにちは| d3.display();
|こんにちは|
|こんにちは|
|こんにちは|
|こんにちは|
+----------+
!!クラス図
{{ref_image "templatemethod.png"}}
,メソッド,種類,役割
,open,abstract,<<や+--..-+を描く
,close,abstract,>>や+--..-+を描く
,print,abstract,文字や文字列を出力
,display,,5回繰り返しprintメソッドを実行
----
{{category オブジェクト指向プログラミング(C317-2)}}