テンプレートメソッドアレイ
Java設計モードで頻繁に使用されるテンプレートメソッドモードをまとめた自己参考記事です.
設計モード:https://velog.io/@yjw8459/Spring-Design-Pattern
ソースコードのアルゴリズムでは、状況に応じて拡張または変更する必要がある場合、複数の重複コードを組み合わせると便利です.
操作では、抽象メソッド()の一部をサブクラスにカプセル化し、構造を変更せずに変更する場合に、抽象メソッド()を過剰に使用できます.
元の構造を守るには、一部だけが独立した論理を構成することができる.テンプレートメソッドモードを使用すると、重複するすべての共通論理が親クラスにグループ化されます. サブクラスは、各クラスが異なるコアロジックのみを実現する. はまた、オブジェクトの追加と決定が継承関係であるため、追加と拡張が容易である.
テンプレートメソッドモードを使用して、親としてサブクラスの汎用構造とモードを作成します.
また、コアビジネスロジックのみがサブクラスで上書きされます.
頻繁に発生する重複コードを減らすことができ、サブクラスの追加と拡張を容易にすることができます.
を乱用すると複雑になる可能性があります. プログラムフローは読みにくくなりました. オブジェクト間の関係が複雑であるため、プログラムが複雑になる可能性があります. javaは多重継承をサポートしていないため、限られています. すなわち、テンプレートメソッドモードは、親を使用してサブクラスの共通構造とモードを作成します.
コアビジネスロジックのみがサブクラスで上書きされます.
頻繁に発生する重複コードの場合、親として宣言される一般的なメソッドを子クラスで使用できます.
このような構造があれば、サブクラスをより簡単に追加および拡張できます.
設計モード:https://velog.io/@yjw8459/Spring-Design-Pattern
テンプレートメソッドアレイ
ソースコードのアルゴリズムでは、状況に応じて拡張または変更する必要がある場合、複数の重複コードを組み合わせると便利です.
共通の論理を親として宣言する一般的なメソッドで、子クラスで異なる可能性のある部分を使用します。
特定のタスクを実行するときは、特定のステップで実行される論理を変更し、全体構造を変更することなく、一部のみをサブクラスにカプセル化します。
public abstract class Super {
public void templateMethod(){
hookMethod(); //그룹핑 한 공통 로직
abstractMethod(); //Super를 상속한 각 객체는 별도의 로직을 구성
}
protected void hookMethod() {
System.out.println("공통 로직");
}
public abstract void abstractMethod();
}
public class Sub extends Super{
@Override
public void abstractMethod() {
System.out.println("클래스 별로 다른 로직 구현");
}
public static void main(String[] args) {
Sub sub = new Sub();
sub.templateMethod();
}
}
templateMethod()がタスクの構造であることを想定する.操作では、抽象メソッド()の一部をサブクラスにカプセル化し、構造を変更せずに変更する場合に、抽象メソッド()を過剰に使用できます.
元の構造を守るには、一部だけが独立した論理を構成することができる.
整理する
テンプレートメソッドモードを使用して、親としてサブクラスの汎用構造とモードを作成します.
また、コアビジネスロジックのみがサブクラスで上書きされます.
頻繁に発生する重複コードを減らすことができ、サブクラスの追加と拡張を容易にすることができます.
短所
コアビジネスロジックのみがサブクラスで上書きされます.
頻繁に発生する重複コードの場合、親として宣言される一般的なメソッドを子クラスで使用できます.
このような構造があれば、サブクラスをより簡単に追加および拡張できます.
Reference
この問題について(テンプレートメソッドアレイ), 我々は、より多くの情報をここで見つけました https://velog.io/@yjw8459/템플릿-메소드-패턴Template-Method-Patternテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol