TroubleShooting & Study/Architecture & Design Pattern 2

[Template Method, Strategy, Callback Pattern] 템플릿 메서드 패턴, 전략 패턴, 콜백 패턴

개발을 하다보면 여러 클래스에서 공통적으로 사용되는 코드와 각 클래스마다 다른 구현 사항이 섞여있는 경우를 종종 볼 수 있다. 이 경우 중복되는 코드가 발생하고, 유지∙보수가 힘들어진다. 따라서 문제점을 해결하기 위해 우리는 변하는 코드와 변하지 않는 코드를 분리 할 필요가 있다. 문제는 변하는 코드가 변하지 않는 코드 중간에 섞여있다면 단순히 메서드로 추출하는 것이 어려운 경우가 있는데, 다음의 패턴들을 통해 해결할 수 있다.      Template Method Pattern    템플릿 메서드 패턴은 공통으로 사용되는(변하지 않는) 메서드를 상위 클래스에서 구현하여 템플릿화 하고, 세부 동작은(변하는 코드) 이를 사용하는 하위 클래스에서 각각 다르게 구현하는 패턴이다   AbstractTemplat..

[Proxy Pattern] 프록시 패턴

Proxy  영어로 Proxy는 '대리', '대리인' 이라는 뜻을 가지고 있다. 뜻 그대로 프록시 패턴이란, 원본 객체에 직접적으로 접근 하는 것이 아니라 어떤 '대리자'를 통해서 간접적으로 원본 객체를 사용하는 것을 말한다.  그림을 통해 자세히 알아보자 인터페이스를 구현한 'Origin Object'와 'Proxy Object'가 있다. 'Proxy Object'는 'Origin Object'를 컴포지션하여 멤버 변수로 사용하고있다. 이때 Client에서 요청이 온다면 다음처럼 작동 할 것이다.Client에서 Request를 보냄Controller를 거친 뒤, 'Origin Object'가 아닌 'Proxy Object'를 호출'Proxy Object'는 method A를 구현하고, 기타 작업을 수행..