본문 바로가기
Be Smart/Spring

Singleton Pattern

by 반월하 2021. 8. 20.
728x90

Chapter 02. 디자인 패턴
Singleton Pattern

 

Singleton pattern


Singleton 패턴은 어떠한 클래스 (객체)가 유일하게 1개만 존재 할 때 사용한다.

이를 주로 사용하는 곳은 서로 자원을 공유 할 때 사용하는데, 실물 세계에서는 프린터가 해당되며,
실제 프로그래밍에서는 TCP Socket 통신에서 서버와 연결된 connect 객체에 주로 사용된다.

Adapter Pattern


Adapter는 실생활에서는 110v를 220v로 변경해주거나, 그 반대로 해주는 변압기로 예를 들 수 있다.
호환성이 없는 기존 클래스의 인터페이스를 변환하여 재사용 할 수 있도록 한다.
SOLID중에서 개방폐쇄 원칙(OCP)를 따른다.

Proxy pattern


Proxy는 대리인 이라는 뜻으로써, 뭔가를 대신해서 처리하는 것
Proxy Class를 통해서 대신 전달 하는 형태로 설계되며, 실제 Client는 Proxy 로 부터 결과를 받는다.
Cache의 기능으로도 활용이 가능하다.
SOLID 중에서 개방폐쇄 원칙 (OCP)과 의존 역전 원칙 (DIP)를 따른다.

 

Decorator Pattern


데코레이터 패턴은 기존 뼈대 (클래스)는 유지하되, 이후 필요한 형태로 꾸밀 때 사용한다. 확장이 필요한 경우 상속의 대안으로도 활용한다. SOLID 중에서 개방폐쇄 원칙 (OCP)과 의존 역전 원칙 (DIP)를 따른다.

Observer Pattern


관찰자 패턴은 변화가 일어 났을 때, 미리 등록된 다른 클래스에 통보해주는 패턴을 구현한 것이다.
많이 보이는 곳은 event listener 에서 해당 패턴을 사용하고 있다.

Facade Pattern


Facade는 건물의 앞쪽 정면 이라는 뜻을 가진다. 여러 개의 객체와 실제 사용하는 서브 객체의 사이에 복잡한 의존관계가 있을 때, 중간에 facade 라는 객체를 두고, 여기서 제공하는 interface 만을 활용하여 기능을 사용하는 방식이다. Facade는 자신이 가지고 있는 각 클래스의 기능을 명확히 알아야 한다.

Strategy Pattern


전략 패턴으로 불리며, 객체지향의 꽃이다.
유사한 행위들을 캡슐화하여, 객체의 행위를 바꾸고 싶은 경우 직접 변경하는 것이 아닌 전략만 변경 하여,
유연하게 확장 하는 패턴 SOLID 중에서 개방폐쇄원칙 (OCP)과 의존 역전 원칙 (DIP)를 따른다.

전략 메서드를 가진 전략 객체 (Normal Strategy, Base64 Strategy )
전략 객체를 사용하는 컨텍스트 (Encoder)
전략 객체를 생성해 컨텍스트에 주입하는 클라이언트

728x90

'Be Smart > Spring' 카테고리의 다른 글

Spring Boot  (0) 2021.09.06
Web 개론  (0) 2021.09.06
디자인 패턴  (0) 2021.08.19
POJO JAVA  (0) 2021.08.19
객체지향 설계 5원칙 SOLID  (0) 2021.08.19

댓글