テンプレートメソッドアレイ
10671 ワード
テンプレートメソッドは、テンプレートを提供するメソッド、サブクラス実装を強制する抽象メソッド、サブクラスが選択的に上書きできるHookメソッドのモードであり、テンプレートメソッドモードと呼ばれる.
理解しなければ、コードを見たほうがいいです.
コードを無理に書いてください.あまり気分が悪くないでほしい.
テンプレートメソッドアレイコンポーネント親Carサブクラス(BMW,Audi)テンプレートメソッドがDriveOnRoad( テンプレートメソッド呼び出しの抽象メソッドで、サブクラスを上書きする必要があります.必要なテンプレートメソッドから呼び出されたフックメソッドをドライブ()から上書きするサブクラスで選択的に上書きします.stop()overridingの選択
「親クラスのサンプルメソッドでサブクラスオーバーライドメソッドを呼び出すモード」
テンプレート法モードは依存逆転法則(DIP)を利用していることが分かる.このモードでは、重複する共通ロジックを再編成し、抽象メソッドとHookメソッドを使用して単一のロジックを強制的に上書きまたは選択的に上書きできます.
guy-who-writes-sourcecode.tistory.com/30
理解しなければ、コードを見たほうがいいです.
コードを無理に書いてください.あまり気分が悪くないでほしい.
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
Reference
この問題について(テンプレートメソッドアレイ), 我々は、より多くの情報をここで見つけました https://velog.io/@devsh/템플릿-메소드-패턴-Template-Method-Patternテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol