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


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()がタスクの構造であることを想定する.
    操作では、抽象メソッド()の一部をサブクラスにカプセル化し、構造を変更せずに変更する場合に、抽象メソッド()を過剰に使用できます.
    元の構造を守るには、一部だけが独立した論理を構成することができる.
  • テンプレートメソッドモードを使用すると、重複するすべての共通論理が親クラスにグループ化されます.
  • サブクラスは、各クラスが異なるコアロジックのみを実現する.
  • はまた、オブジェクトの追加と決定が継承関係であるため、追加と拡張が容易である.
  • 整理する


    テンプレートメソッドモードを使用して、親としてサブクラスの汎用構造とモードを作成します.
    また、コアビジネスロジックのみがサブクラスで上書きされます.
    頻繁に発生する重複コードを減らすことができ、サブクラスの追加と拡張を容易にすることができます.

    短所

  • を乱用すると複雑になる可能性があります.
  • プログラムフローは読みにくくなりました.
  • オブジェクト間の関係が複雑であるため、プログラムが複雑になる可能性があります.
  • javaは多重継承をサポートしていないため、限られています.
    	
  • すなわち、テンプレートメソッドモードは、親を使用してサブクラスの共通構造とモードを作成します.
    コアビジネスロジックのみがサブクラスで上書きされます.
    頻繁に発生する重複コードの場合、親として宣言される一般的なメソッドを子クラスで使用できます.
    このような構造があれば、サブクラスをより簡単に追加および拡張できます.