본문 바로가기

기타25

[자바 디자인패턴] 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.
[이펙티브자바] 9.일반적인 프로그래밍 1. 지역변수의 범위를 최소화하라. 1.1. 지역 변수의 값을 반복문이 종료된 뒤에 사용되지 않는 경우 while문 보다 for문을 이용하는게 났다. 1.2. 복사 붙여넣기시 while문 보다 오류가 날 확률이 적다. 1.3. while문 보다 가독성이 더 좋다 더보기 List strList = List.of("11111","22222"); // for 문 안에서만 지역변수가 사용된다. for (String text : strList) { System.out.println(text); } // 반복문 밖에 지역변수가 사용된다. Iterator i = strList.iterator(); while (i.hasNext()){ System.out.println(i.next()); } 2. for 문보다는 fo.. 2022. 10. 15.
[자바 디자인패턴] 3. Factory Method 패턴 Factory Method 패턴 이란? Factory Method 패턴은 생성패턴에 속하는 디자인 패턴이다. 이전 포스팅에서 템플릿 메서드 패턴을 통해 틀을 만들고 이를 구현하는 방법을 배웠다. Factory Method 패턴은 이 템플릿 메서드 패턴을 바탕으로 인스턴스를 생성하는 틀을 상위 클래스에서 만들고 하위 클래스에서 이를 구현한다. 즉 인스턴스 생성 Template 과 구현하는 로직을 분리해놓은 패턴이다. 예를 들어 신분증명서 카드를 만들고 등록하는 로직을 Factory Method 패턴을 통해 구현해보면 아래와 같이 Factory 클래스와 Card클래스를 상위 클래스로 생성한다. Factory 클래스는 객체 생성에 대한 틀이 구현되어 있다. Card 클래스는 Factory클래스에서 참조하는 객.. 2022. 8. 14.
[자바 디자인패턴] 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.