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

Timo·2021년 4월 23일
0
post-thumbnail

어댑터 패턴

Adapter Pattern
“호출당하는 쪽의 메서드를 호출하는 쪽의 코드에 대응하도록 중간에 변환기를 통해 호출하는 패턴”

서로 다른 두 인터페이스 사이에 통신이 가능하게 하는 것.
어댑터 패턴은 합성, 즉 객체를 속성으로 만들어서 참조하는 디자인 패턴으로, 한 문장으로 정리하면 다음과 같다

프록시 패턴

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

프록시 패턴은 실제 서비스 메서드의 반환값에 가감하는 것을 목적으로 하지 않고 제어의 흐름을 변경하거나 다른 로직을 수행하기 위해 사용한다.

데코레이터 패턴

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

프록시패턴과 구현 방법이 같다. 데코레이터 패턴은 클라이언트가 받는 반환값에 장식을 더한다.

싱글턴 패턴

Singleton Pattern
“클래스의 인스턴스, 즉 객체를 하나만 만들어 사용하는 패턴”

인스턴스를 하나만 만들어 사용하기 위한 패턴

템플릿 메서드 패턴

Template Method Pattern
“상위 클래스의 견본 메서드에서 하위 클래스가 오버라이딩한 메서드를 호출하는 패턴”

팩터리 메서드 패턴

Factory Method Pattern
팩터리 메서드는 객체를 생성 반환하는 메서드를 말한다.
여기에 패턴이 붙으면 하위 클래스에서 팩터리 메서드를 오버라이딩해서 객체를 반환하게 하는 것을 의미한다.

전략 패턴

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

템플릿 콜백 패턴(견본/회신 패턴)

Template Callback Pattern
“전략을 익명 내부 클래스로 구현한 전략 패턴”

전략 패턴의 변형으로, 스프링의 3대 프로그래밍 모델 중 하나인 DI(의존성 주입)에서 사용하는 특별한 형태의 전략 패턴이다.
전략 패턴과 모든 것이 동일한데 전략을 익명 내부 클래스로 정의해서 사용한다는 특징이 있다.

profile
나는 매일 성장하는 사람

0개의 댓글