728x90
1. 싱글톤 패턴(singleton pattern)
- 프로그램에서 인스턴스가 단 한 개만 생성되어야 하는 경우 사용하는 디자인 패턴
- static 변수, 메서드를 활용하여 구현할 수 있음
- 어떠한 클래스(객체)가 유일하게 1개만 존재할 때 사용
- 주로 서로 자원을 공유할 때 사용, 실물 세계에서는 프린터가 해당 (여러 대의 pc가 하나의 복사기를 사용하는 경우)
- 실제 프로그래밍에서는 tcp socket 통신에서 서버와 연결된 connect 객체에 주로 사용 (socket 하나로 多연결)
- 기본 생성자를 private로 막고 getInstance()를 제공
싱글톤 패턴으로 회사 객체 구현하기
- 생성자는 private으로 선언
외부에서 Company를 만들지 못하도록 함
private Company() {}
- 클래스 내부에 유일한 private 인스턴스 생성
2. Proxy pattern
- Proxy는 대리인이라는 뜻, 뭔가를 대신해서 처리하는 것
- Proxy Class를 통해 대신 전달하는 형태로 설계됨. 실제 Client는 Proxy로부터 결과를 받음.
- Cache의 기능으로도 활용이 가능
- SOLID중에서는 개방 폐쇄의 원칙(OCP)와 의존 역전 원칙(DIP)를 따름
3. Decorator pattern
-
- 데코레이터 패턴은 기존 뼈대(클래스)는 유지하되, 이후 필요한 형태로 꾸밀 때 사용한다.
- 확장이 필요한 경우 상속의 대안으로도 활용한다.
- SOLID중에서 개방폐쇄원칙과 의존역전원칙을 따른다.
- 예를 들어, 에스프레소 + 물 → 아메리카노 / 에스프레소 + 우유 → 라떼
4. Adapter pattern
- 실생활에서 110v를 220v로 변경해 주거나, 그 반대로 해주는 돼지코라고 불리는 변환기를 예로 들 수 있다.
- 호환성이 없는 기존 클래스의 인터페이스를 변환하여 재사용 할 수 있도록 한다.
- SOLID중에서 OCP를 따른다 (개방폐쇄원칙)
5. Observer pattern
- 자바의 이벤트 리스너가 옵저버 패턴의 대표적인 예
- 변화가 일어 났을 때, 미리 등록된 다른 클래스에 통보해주는 패턴
728x90
'JAVA' 카테고리의 다른 글
상속 (0) | 2023.03.14 |
---|---|
배열(array) - 자료를 순차적으로 한꺼번에 관리하는 방법 (0) | 2023.03.14 |
여러 인스턴스에서 공통으로 사용하는 변수를 선언하자 - static변수 (0) | 2023.03.14 |
객체 자신을 가리키는 this (0) | 2023.03.14 |
StringBuffer (0) | 2023.03.14 |
댓글