본문 바로가기

반응형

개인공부/디자인패턴

(6)
Reflection 과 Jdk동적 프록시 Reflection 다음과 같은 로직을 살펴보자. Hello target = new Hello(); //공통 로직1 시작 log.info("start"); String result1 = target.callA(); //호출하는 메서드가 다음 log.info("result={}", result1); //공통 로직1 종료 //공통 로직2 시작 log.info("start"); String result2 = target.callB(); //호출하는 메서드가 다음 log.info("result={}", result2); //공통 로직2 종료 공통로직을 이쁘게 묶는 방법이 필요하다... 이럴 때 사용하는게 reflection이다. //클래스 정보 Class classHello = Class.forName("hel..
인터페이스 프록시 VS 클래스 기반 프록시 패턴 인터페이스 기반 프록시 패턴 @Bean public OrderControllerV1 orderController(LogTrace logTrace) { OrderControllerV1Impl controllerImpl = new OrderControllerV1Impl(orderService(logTrace)); return new OrderControllerInterfaceProxy(controllerImpl, logTrace); } @Bean public OrderServiceV1 orderService(LogTrace logTrace) { OrderServiceV1Impl serviceImpl = new OrderServiceV1Impl(orderRepository(logTrace)); return n..
프록시 패턴 / 데코레이터 패턴 프록시란? 서버 이야기를 하다보면 프록시라는게 존재한다. 프록시는 클라이언트에서 서버를 호출할 때 들리는 일종의 중간 문이라고 생각하고 그 과정에서 여러가지 정보를 수정하거나 로그를 찍거나 할 수 있다. 프록시 패턴에서 프록시도 서버에서 말하는 프록시와 그 기능이 동일하다. 프록시 패턴 (접근제어, 캐싱) 어떠한 인터페이스 Subject라고 하는 인터페이스의 구현체라고 가정한다. Subject Interface public interface Subject { String operation(); } 해당 인터페이스를 구현하고 있는 현재 사용하고 있는 인스턴스이다. public class RealSubject implements Subject { @Override public String operation(..
템플릿 콜백 패턴 https://redbinalgorithm.tistory.com/721 전략 패턴 https://redbinalgorithm.tistory.com/720 템플릿 메서드 패턴 기본 로직 템플릿 메서드 패턴은 여러 반복되는 메서드들을 줄여 줄 수 있는 패턴이다. /// 고정로직 /// /// 비즈니스 로직 /// /// 고정로직 ///.. redbinalgorithm.tistory.com 이전에는 전략 패턴에 대해서 배웠다. Interface로 설계한 전략 아래 다향한 전략을 바꿔가면서 Context에서 호출하면서 사용한다. 이번에는 템플릿 콜백 패턴에 대해서 배워보겠다. 템플릿 콜백 패턴은 전략패턴과 다를게 없지만 DI(Dependency injection) 의존성 주입에서 사용하는 특별한 전략 패턴입니다..
전략 패턴 https://redbinalgorithm.tistory.com/720 템플릿 메서드 패턴 기본 로직 템플릿 메서드 패턴은 여러 반복되는 메서드들을 줄여 줄 수 있는 패턴이다. /// 고정로직 /// /// 비즈니스 로직 /// /// 고정로직 /// 다음과 같이 고정로직이 반복되고 비즈니스 로직만 redbinalgorithm.tistory.com 포스팅을 시작하며 이전 템플릿 메서드 패턴에 대해서 공부 했다. 전략패턴도 고정된 로직과 바뀌는 비즈니스 로직을 어떻게하면 좋은 유지보스로 적용할 수 잇을까? 라는 생각으로 나오게 된 패턴이다. 먼저! , 이전의 템플릿 메서드 패턴의 클라이언트 구조를 살펴보자. @Test void templateMethodV() { AbstractTemplateT templa..
템플릿 메서드 패턴 기본 로직 템플릿 메서드 패턴은 여러 반복되는 메서드들을 줄여 줄 수 있는 패턴이다. /// 고정로직 /// /// 비즈니스 로직 /// /// 고정로직 /// 다음과 같이 고정로직이 반복되고 비즈니스 로직만 바뀌는 경우에 사용할 수 있는 패턴이다. 다음과 같은 예시를 알아보자. @Test void myTemplateMethodPattern() { proccess1(); proccess2(); } private void proccess1() { // 고정로직 // long start = System.currentTimeMillis(); // 비지니스 로직 // System.out.println("TemplateMethodTest.proccess1"); // 고정로직 // long end = System...

반응형