반응형
어댑터 패턴(Adapter pattern)
- 한 클래스의 인터페이스를 클라이언트에서 사용하고자 다른 인터페이스로 변환하는 패턴
- 서로 관계없는 인터페이스들을 함께 사용할 수 있게 하는 패턴
- 호출당하는 쪽의 메소드를 호출하는 쪽의 코드에 대응하도록 중간에 변환기를 통해 호출하는 패턴
- 자바 코어 라이브러리의 몇가지 표준 어댑터 예시
- java.io.InputStreamReader(InputStream)
- java.io.OutputStreamWriter(OutputStream)
예) 둥근 구멍들에 정사각형 못들을 맞추기
→ 둥근 구멍, 정사각형 못, 정사각형 못을 둥근 구멍에 맞춰주는 어댑터, 클라이언트 사용 코드 등이 필요함
프록시 패턴(Proxy Pattern)
- 프록시 : 대리자, 대변인이라는 뜻
- 대리자를 사용하여 호출
- 제어 흐름을 조정하기 위한 목적으로 중간에 대리자를 두는 패턴
- 개방 폐쇄 원칙과 의존 역전 원칙이 적용된 설계 패턴
- 프록시 패턴의 중요 포인트
- 대리자는 실제 서비스와 같은 이름의 메서드를 구현한다. 이때 인터페이스를 사용한다.
- 대리자는 실제 서비스에 대한 참조 변수를 갖는다(합성).
- 대리자는 실제 서비스의 같은 이름을 가진 메서드를 호출하고 그 값을 그대로 클라이언트에게 돌려준다.
- 대리자는 실제 서비스의 메소드 호출 전후에 별도의 로직을 수행할 수 있다.
데코레이터 패턴(Decorator Pattern)
- 반환값에 장식을 더한다는 것을 빼면 프록시 패턴과 동일
- 메소드 호출의 반환값에 변화를 주기 위해 중간에 장식자를 두는 패턴
싱글톤 패턴(Singleton Pattern)
클래스의 인스턴스, 즉 객체를 하나만 만들어 사용하는 패턴
- new를 실행할 수 없도록 생성자에 private 접근제어자를 지정한다.
- 유일한 단일 객체를 참조할 정적 참조 변수가 필요하다.
- 유일한 단일 객체를 반환할 수 있는 정적 메소드가 필요하다.
- 단일 객체인 경우 결국 공유 객체로 사용되기 때문에 속성을 갖지않게 하는것이 정석이다.
반응형
'Back-End > Spring Boot' 카테고리의 다른 글
예습) 스프링 입문을 위한 자바 객체 지향의 원리와 이해 (0) | 2023.04.23 |
---|---|
예습) 스프링 입문을 위한 자바 객체 지향의 원리와 이해 (0) | 2023.04.17 |
예습) 스프링 입문을 위한 자바 객체 지향의 원리와 이해 (0) | 2023.04.16 |
댓글