Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

개발자되기 프로젝트

Template Method - 예제3, 익명 내부 클래스 본문

인프런/[인프런] 스프링 핵심 원리 - 고급

Template Method - 예제3, 익명 내부 클래스

Seung__ 2021. 11. 22. 19:24

1. 익명 내부 클래스 


  • 템플릿 메서드 패턴은 SubClassLogic1, SubClasLogic2처럼 클래스를 계속 만들어야 하는 단점이 있음.
  • 귀찮아!
  • 익명 내부 클래스를 사용하면 단점을 보완 가능함!
  • 익명 내부 클래스를 사용하면 객체 인스턴스를 생성하면서
    동시에 생성할 클래스를 상속 받은 자식 클래스를 정의할 수 있다. 
  • 이 클래스 SubClasJogic1처럼 직접 지정하는 이름이 없고 클래스 내부에 선언된 클래스여서 익명 내부 크래스라 함.

 

 

2. Test


@Test
void templateMethodV2(){

    //상속 받으면서 구현 바로 함.
    AbstractTemplate template1 = new AbstractTemplate() {
        @Override
        protected void call() {
             log.info("비즈니스 로직 1 실행");
        }
    };

    AbstractTemplate template2 = new AbstractTemplate() {
        @Override
        protected void call() {
             log.info("비즈니스 로직 2 실행");
        }
    };
}
클래스 이름1 = class hello.advanced.trace.template.TemplateMethodTest$1
비즈니스 로직 1 실행
resultTime = 0
비즈니스 로직 2 실행
resultTime = 0
클래스 이름2 = class hello.advanced.trace.template.TemplateMethodTest$2

 

 

3. GitHub : 211122 TeplateMethod example3


 

GitHub - bsh6463/Spring_Advanced: initial

initial. Contribute to bsh6463/Spring_Advanced development by creating an account on GitHub.

github.com

 

'인프런 > [인프런] 스프링 핵심 원리 - 고급' 카테고리의 다른 글

Template Method - 적용2  (0) 2021.11.22
Template Method - 적용1  (0) 2021.11.22
Template Method - 예제2  (0) 2021.11.22
Template Method - 예제1  (0) 2021.11.22
Template Method - 시작  (0) 2021.11.22
Comments