디자인패턴4 [자바 디자인패턴] 5. Dynamic Proxy 패턴 안녕하십니까아. 이번 포스팅은 Dynamic Proxy 패턴에 대해서 써보려고 합니다. Dynamic Proxy는 Proxy를 동적으로 생성하여 사용하는 패턴입니다. Dynamic Proxy를 사용하는 경우는 대게 제네릭한 행동을 할때 사용됩니다. 가령 안드로이드 경우 Retrofit에서 이 방법을 사용하여 api호출을 하고있습니다. 이 패턴에서 알아야할 것은 InvocationHandler라는 것이 있습니다. 이 핸들러는 어떤 함수를 호출시 해당 호출에 대한 트리거 함수를 작성할 수 있습니다. 만약 Http의 Get 메소드를 호출하면 해당 메소드에 로그를 찍거나 하는 등의 기능을 할 수 있습니다. 일단 코드를 보면 HttpMethodInterface가 있고 이를 구현한 Impl클래스가 있습니다. Pro.. 2023. 3. 1. [자바 디자인패턴] 4. Proxy 패턴 이번 포스팅은 프록시 패턴에 대해 적어보고자 합니다. Proxy 라는 뜻은 대리인이라는 의미를 갖는데, 자바에서 프록시 패턴은 대리인을 통해 일을 처리하는 패턴을 의미합니다. Printer 기능에 대해 프록시패턴을 적용했을때 아래와 같이 3개의 파일이 필요합니다. Printer Printer 기능을 하는 클래스 PrinterInterface Printer와 PrinterProxy의 공통 인터페이트 PrinterProxy Printer를 갖고 있으면서 대리인의 기능을 하는 클래스 Printer기능을 이용할때 Printer를 직접 이용하는 것이 아니라 PrinterProxy(대리인)를 통해 그 기능을 수행하게 됩니다. Proxy패턴을 사용하는 이유는 크게 3가지 이유가 있습니다. 1. SOLID 원칭중 OC.. 2023. 2. 12. [자바 디자인패턴] 2. Template Method 패턴 Template Method 패턴 이란? Template은 형판이나 어떤 형태의 틀이 라는 사전적인 의미를 갖고 있다. 예를 들면 우리가 초등학생때 어떤 플라스틱 판에 종이를 깔고 플라스틱 판 모양 그대로 도형을 따라 그린 경험이 있다면 이때 이 플라스틱 판은 템플릿이 된다. 즉 이미 갖춰져 있는 틀(Template)에 따라 그리는 행동(구현)을 Template Method 이라고 부른다. 이제 정사각형, 원, 삼각형의 템플릿을 만들고 이를 그리는 행동에 대해 프로그래밍 하면 다음과 같다. fun main() { val squareTemplate: Template = SquareTemplate() val circleTemplate: Template = CircleTemplate() val triangle.. 2022. 8. 14. [자바 디자인패턴] 1. Adapter 패턴 Adapter 패턴 이란? 이미 제공되어 있는 부분에서 개조를 통하여 필요한 것으로 만드는 패턴이다. 예를 들면 우리가 노트북을 사용할 때 어댑터를 연결해서 사용하는데 이 어댑터는 220V의 전압을 노트북에 맞게 변환해 주는 역할을 한다. Adapter패턴에는 상속을 이용한 Adapter패턴과 위임을 사용한 Adapter패턴이 있다. 1. 상속을 이용한 Adapter패턴 상속을 이용한 패턴은 말 그대로 Adapter에서 이미 제공 되어있는 부분들을 상속하여 구현하는 방법이다. fun main() { val adapter: Adapter = LabtopAdapter(12) adapter.flowElectric() } class LabtopAdapter(private val voltage: Int): Lab.. 2022. 8. 13. 이전 1 다음