템플릿 방법 패턴

작업에서 알고리즘의 골격을 정의하고 일부 단계를 하위 클래스로 연기합니다. Template Method를 사용하면 서브클래스가 알고리즘의 구조를 변경하지 않고 알고리즘의 특정 단계를 재정의할 수 있습니다.



참가자들


  • AbstractClass: 구체적인 하위 클래스가 알고리즘의 단계를 구현하기 위해 정의하는 추상 기본 작업을 정의합니다. 알고리즘의 골격을 정의하는 템플릿 메서드를 구현합니다. 템플릿 메소드는 AbstractClass나 다른 객체에 정의된 오퍼레이션 뿐만 아니라 기본 오퍼레이션을 호출합니다.
  • ConcreteClass: 알고리즘의 하위 클래스별 단계를 수행하는 기본 작업을 구현합니다
  • .

    암호




    public class Main {
    
        public static void main(String[] args) {
            AbstractClass aA = new ConcreteClassA();
            aA.templateMethod();
            AbstractClass aB = new ConcreteClassB();
            aB.templateMethod();
        }
    }
    
    public abstract class AbstractClass {
    
        public abstract void primitiveOperation1();
    
        public abstract void primitiveOperation2();
    
        public void templateMethod() {
            primitiveOperation1();
            primitiveOperation2();
        }
    }
    
    public class ConcreteClassA extends AbstractClass {
    
        @Override
        public void primitiveOperation1() {
            System.out.println("ConcreteClassA.primitiveOperation1()");
        }
    
        @Override
        public void primitiveOperation2() {
            System.out.println("ConcreteClassA.primitiveOperation2()");
        }
    }
    
    public class ConcreteClassB extends AbstractClass {
    
        @Override
        public void primitiveOperation1() {
            System.out.println("ConcreteClassB.primitiveOperation1()");
        }
    
        @Override
        public void primitiveOperation2() {
            System.out.println("ConcreteClassB.primitiveOperation2()");
        }
    }
    

    산출



    ConcreteClassA.primitiveOperation1()
    ConcreteClassA.primitiveOperation2()
    ConcreteClassB.primitiveOperation1()
    ConcreteClassB.primitiveOperation2()
    




    eidherjulian61 / 디자인 패턴








    좋은 웹페이지 즐겨찾기