Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 개발자
- 코딩
- 깨끗한코드
- DesignPattern
- JavaScript
- 성수핫플
- 헤드퍼스트디자인패턴
- 책너두
- 독서일지
- 주니어개발자
- 헤드퍼스트
- 객체지향프로그래밍
- 성수볼거리
- 오브젝트
- Java
- 상속
- 독서
- 성수
- Linux
- JAVA개발자
- 책읽기
- 객체지향
- docker
- 성수맛집
- 성수직장인
- 직장인
- 직장인점심
- IntelliJ
- 디자인패턴
- 클린코드
Archives
- Today
- Total
런타임노트
[헤드퍼스트 디자인패턴] 16일차. 217-226pg 본문
728x90
16일차
헤드퍼스트 디자인패턴 [3주차_목요일]
217-226pg
요약
CHAPTER 05. 하나뿐인 특별한 객체 만들기 (feat. 싱글턴 패턴)
[ 초콜릿 보일러 문제 해결하기 ]
방법1. getnstance() 메소드 동기화 하기 : 항상 올바른 결과가 나옴. 초콜릿 보일러의 속도문제는 중요히자 않으니 이 방법 괜찮음.
방법2. 인스턴스를 시작하자마자 만들기 : 초콜릿 보일러의 인스턴스는 항상 필요하기 때문에 정적으로 초기화 하는 것도 괜찮은 방법. 하지만 방법1과 큰 차이가 없다.
방법3. DCL 사용하기 : 속도 문제가 중요하지 않기 때문에 DCL까지 쓸 필요 없음.
- 클래스 로더가 2개 이상이라면 같은 클래스를 여러 번 로딩할 수도 있으니, 클래스 로더가 여러 개라면 싱글턴을 조심해서 사용해야 합니다.
- 리플렉션, 직렬화, 역직렬화도 싱글턴에서 문제가 될 수 있다.
- 싱글턴은 느슨한 결합 원칙에 위배된다.
- 싱글턴은 라이브러리에 넣을 수 있는 형태의 해법이 아니며, 싱글턴 코드는 간단하기 때문에 기존 클래스에 있던 코드를 싱글턴 클래스에 넣기 쉽다.
- 싱글턴은 특수한 상황에서 제한된 용도로 사용하려고 만들어진 것이기 때문에 애플리케이션을 만들 때 싱글턴을 많이 사용했다면 다시 한번 생각해볼 필요가 있다.
⇒ 동기화문제, 클래스로딩문제, 리플렉션, 직렬화, 역직렬화 문제는 enum으로 해결할 수 있다.
[ 객체지향 패턴 추가++ ]
- 싱글톤 패턴 : 클래스 인스턴스를 하나만 만들고, 그 인스턴스로의 전역 접근을 제공한다.
- 애플리케이션에서 특정 클래스의 인스턴스가 하나만 있어야 한다면 그 클래스를 싱글톤으로 만들면 된다.
CHAPTER 06. 호출 캡슐화하기 (feat. 커맨드 패턴)
메소드 호출을 캡슐화 한다.
[ 확장형 기상스테이션 ]
- 홈오토메이션 리모컨 API 디자인 의뢰
발췌
💡 자바의 enum을 쓰면 간단하게 싱글톤을 구현할 수 있다.
728x90
반응형
'책책책 책을 읽읍시다‼ ver.개발 > [ 헤드퍼스트 디자인패턴 ]' 카테고리의 다른 글
| [헤드퍼스트 디자인패턴] 18일차. 240-256pg (0) | 2023.05.17 |
|---|---|
| [헤드퍼스트 디자인패턴] 17일차. 227-239pg (0) | 2023.05.17 |
| [헤드퍼스트 디자인패턴] 15일차. 205-216pg (2) | 2023.05.10 |
| [헤드퍼스트 디자인패턴] 14일차. 190-204pg (0) | 2023.05.10 |
| [헤드퍼스트 디자인패턴] 13일차. 180-189pg (0) | 2023.05.08 |