본문 바로가기

Java/Java

(JAVA) 템플릿 메서드 패턴 / 팩토리 메서드 패턴

템플릿 메서드 패턴

템플릿 메서드 패턴이란?

상속을 통해 슈퍼클래스의 기능을 확장할 때 사용하는 가장 대표적인 방법

변하지 않는 기능은 슈퍼클래스에 만들어 두고 자주 변경되어 확장할 기능은 서브클래스에 만든다.

public abstract class Super{
    public void templateMthod(){
        //기본 알고리즘 코드
        hookMethod();
        abstractMethod();
    }
    protected void hookMethod(){ } //선택적으로 오버라이드 가능
    public abstract void abstractMethod(); //서브클래스에서 반드시 구현해야하는 												추상메서드
}
public class Sub extends Super{
    public void templateMthod(){  /*구현*/    }
    public void abstractMethod(){  /*구현*/    }
}

기본 알고리즘 골격을 담은 메서드를 템플릿 메서드라 부른다.

 

팩토리 메서드 패턴

팩토리 메서드 패턴이란?

상속을 통해 기능을 확장하게 하는 패턴(탬플릿 메서드 패턴과 구조 유사)

슈퍼클래스의 코드에 서브클래스에서 구현할 메서드를 호출할떄 필요한 타입의 오브젝트를 가져와 사용

쉽게 말하자면 객체를 만들어내는 부분을 서브클래스에 위임하는 패턴

객체를 만들어내는 공장을 만드는 패턴

주로 인터페이스 타입


Code Link

 

https://github.com/mike6321/Spring/tree/master/1%EC%9E%A5%20%EC%98%A4%ED%94%84%EC%A0%9D%ED%8A%B8%EC%99%80%20%EC%9D%98%EC%A1%B4%EA%B4%80%EA%B3%84/%ED%85%9C%ED%94%8C%EB%A6%BF%EB%A9%94%EC%84%9C%EB%93%9C%20%ED%8C%A8%ED%84%B4%26%ED%8C%A9%ED%86%A0%EB%A6%AC%EB%A9%94%EC%84%9C%EB%93%9C%20%ED%8C%A8%ED%84%B4

 

mike6321/Spring

Contribute to mike6321/Spring development by creating an account on GitHub.

github.com