읽은 책 정리/스프링 입문을 위한 자바 객체지향 원리와 이해

스프링이 사랑한 디자인 패턴

포포015 2021. 7. 16. 15:32

* 어댑터 패턴 - 개방 폐쇄 원칙을 활용한 설계 패턴

                    합성,즉 객체를 속성으로 만들어서 참조하는 패턴

                  ( 호출 당하는 쪽의 메서드를 호출당하느쪽의 코드에 대응하도록, 중간에 변환기를 통해 호출하는패턴)

 

* 프록시 패턴 - 실제 서비스 메서드의 반환값에 가감하는것을 목적으로 하지않고, 제어의 흐름을 변경하거나,

                   다른 로직을 수행하기 위해 사용한다.

                   (제어 흐름을 조정하기 위한 목적으로 중간에 대리자를 두는 패턴)

 

* 데코레이터 패턴 - 원본에 장식을 더하는 패턴( 클라이언트가 받는 반환값에 장식을 덧입힌다.)

                        (메서드 호출의 반환값에 변화를 주기 위해 중간에 장식자를 두는 패턴)

 

* 싱글톤 패턴    - 인스턴스 하나만 만들어 사용하기 위한 패턴

                        (오직 인스턴스를 하나만 만들고, 그것을 계속해서 재사용한다)

                       (클래스의 인스턴스 , 즉 객체를 하나만 만들어 사용하는 패턴)

 

* 템플릿 메서드 패턴 - 상위클래스에 공통로직을 수행하는 템플릿 메서드와 하위 클래스에 오버라이딩을

                               강제하는 추상메서드 또는 선택적으로 오버라이딩할수 있는 훅(hook)메서드를 두는 패턴

                          (상위클래스의 견본 메서드에서 하위클래스가 오버라이딩한 메서드를 호출하는 패턴)

 

* 팩터리 메서드 패턴 - 객체 생성 반환하는 메서드를 말한다.

                              (오버라이드된 메서드가 객체를 반환하는 패턴)

 

* 전략패턴(디자인 패턴의 꽃) - 전략패턴을 구성하는 세요소는 꼭 기억해야한다.

                                      1) 전략 메서드를 가진 전략객체

                                      2) 전략 객체를 사용하는 컨텍스트 (전략객체의 사용자/ 소비자)

                                      3) 전략 객체를 생성해 컨텍스트에 주입하는 컨텍스트( 제3자, 전략객체의 공급자)

                       * 클라이언트는 다양한 전략중 하나를 선택해 생성한후, 컨텍스트에 주입한다.

                       - 클라이언트가 전략을 생성해 전략을 실행할 컨텍스트에 주입하는 패턴

 

 

* 템플릿 콜백 패턴 - 전략패턴의 변형으로 DI(의존성주입)에서 사용하는 특별한 형태의 전략패턴이다.

                            (전략 패턴과 모든것이 동일한데, 전략을 익명내부 클래스로 정의해서 사용한다는 특징이 있다.)

                            (전략을 익명 내부 클래스로 구현한 전략패턴)