テンプレートメソッドアレイ


テンプレートメソッドは、テンプレートを提供するメソッド、サブクラス実装を強制する抽象メソッド、サブクラスが選択的に上書きできるHookメソッドのモードであり、テンプレートメソッドモードと呼ばれる.
理解しなければ、コードを見たほうがいいです.
コードを無理に書いてください.あまり気分が悪くないでほしい.
public class Bmw {
    public void driveOnRoad() {
    	System.out.println("자동차 시동 부릉");
        System.out.println("수동 기어로 시작");
        System.out.println("정지");
        System.out.println("자동차 시동 끄기");
    }
 }
 
 public class Audi {
    public void driveOnRoad() {
    	System.out.println("자동차 시동 부릉");
        System.out.println("자동 기어로 시작");
        System.out.println("정지");
        System.out.println("자동차 시동 끄기");
    }
 }
上記のコードがあると言いましょう.オブジェクト向けの特徴を少し理解すると,上で繰り返したコードを再構築する意志が燃え上がる.そこで,テンプレートメソッドモードを適用して改良を試みた.
package 템플릿메소드패턴;

public abstract class Car {
    public void driveOnRoad() {
        System.out.println("자동차 시동 부릉");
        drive();
        stop();
        System.out.println("자동차 시동 끄기");
    }
    
    abstract drive();
    
    void stop() {
    	System.out.println("정지");
    }
}
        
        
package 템플릿메소드패턴;

public class Bmw extends Car {
    @Override
    void drive() {
    	System.out.println("자동 주행");
    }
    
    @Override
    void stop() {
    	System.out.println("Bmw 정지");
    }
 }
 
 
package 템플릿메소드패턴;

public class Audi extends Car {
    @Override
    void drive() {
    	System.out.println("수동 주행");
    }
    
    @Override
    void stop() {
    	System.out.println("Audi 정지");
    }
 }
コードだけを見ては理解できません.一つ一つ説明します.
テンプレートメソッドアレイコンポーネント親Carサブクラス(BMW,Audi)テンプレートメソッドがDriveOnRoad( テンプレートメソッド呼び出しの抽象メソッドで、サブクラスを上書きする必要があります.必要なテンプレートメソッドから呼び出されたフックメソッドをドライブ()から上書きするサブクラスで選択的に上書きします.stop()overridingの選択
「親クラスのサンプルメソッドでサブクラスオーバーライドメソッドを呼び出すモード」
テンプレート法モードは依存逆転法則(DIP)を利用していることが分かる.このモードでは、重複する共通ロジックを再編成し、抽象メソッドとHookメソッドを使用して単一のロジックを強制的に上書きまたは選択的に上書きできます.
guy-who-writes-sourcecode.tistory.com/30