テンプレートのデザインパターン

  英語名テンプレートテンプレートは、このモードでは、例えば、以下の(抽象)AbstractClassとConcreteClass(具象クラス)、で主要な役割があります。

  文字または文字列のサイクル5回の表示部と、

  まず、抽象クラス、抽象クラスの定義、表示方法は、サブクラスdiaplayメソッドを呼び出すことにより、テンプレートで次のように、それは、実行されるサブクラスで定義された特定のメソッドを固定する方法に従って実行します。

1つの パッケージt2020010602。
2  
3  パブリック 抽象 クラスAbstractDisplay {
 4      パブリック 抽象 ボイドオープン();
5  
6      公共の 抽象 無効印刷();
7  
8      公共の 抽象 無効近いです();
9  
10      パブリック 最終 ボイドディスプレイ(){
 11          オープン();
12          のためにINT I 0 =; I <5は、I ++ ){
 13              プリント();
14          }
15          近いです();
16      }
 17 }

次いで、特定のメソッドのサブクラスを定義します

1つの パッケージt2020010602。
2  
3  パブリック クラス CharDisplayは延びAbstractDisplay {
 4      プライベート チャーCHと、
5  
6      公共 CharDisplay(チャーCH){
 7          この .CH = CH。
8      }
 9  
10      @Override
 11      公共 ボイドオープン(){
 12          System.out.print( "<<" )。
13      }
 14  
15      @Override
 16      公共 ボイドプリント(){
 17          System.out.print(CH)。
18      }
 19  
20      @Override
 21      公共 ボイド近い(){
 22          のSystem.out.println( ">>" )。
23      }
 24  
25 }
1つの パッケージt2020010602。
2  
3  パブリック クラス StringDisplayは延びAbstractDisplay {
 4      プライベート文字列を、
5  
6      プライベート int型の長さ。
7  
8      公共StringDisplay(文字列){
 9          この .string = ストリング。
10          長さ= 。するString.getBytes()長さ;
11      }
 12  
13      @Override
 14      公共 ボイドオープン(){
 15          プリントライン()。
16     }
 17  
18      @Override
 19      公共 ボイドプリント(){
 20          のSystem.out.println( "+" +文字列+ "+" )。
21      }
 22  
23      @Override
 24      公共 ボイド近い(){
 25          プリントライン()。
26      }
 27  
28      公共 ボイドプリントライン(){
 29          System.out.print( "+" )。
30          のためにINT iは= 0; I <長さ、iは++ ){
 31              System.out.print( " - " )。
32          }
 33          のSystem.out.println( "+" )。
34      }
 35  
36 }

プログラムのエントリとして

1つの パッケージt2020010602。
2  
3  パブリック クラスメイン{
 4  
5      パブリック 静的 ボイドメイン(文字列[]引数){
 6          AbstractDisplay D1 = 新しい CharDisplay( 'H' )。
7          AbstractDisplay D2 =  StringDisplay( "こんにちは、世界;" );
8          d1.display()。
9          d2.display()。
10      }
 11  
12 }

あなたが見ることができ、D1、D2は同じメソッドを呼び出しますが、異なるアプローチ本体を行い、これはテンプレートプログラムです。

おすすめ

転載: www.cnblogs.com/xiaoyaomianbiren/p/12158522.html