일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
- kafka
- Authentication
- 카프카
- consumer
- junit5
- git cli
- TDD
- SpringBoot
- signWith
- 싱글톤
- Clean Code
- orElseGet
- 디자인패턴
- optional
- orelse
- effective java
- 인텔리제이 단축키
- Java8
- mokito
- Stream
- 함수형 프로그래밍
- JWT
- topic
- producer
- Spring Security
- Functional Programming
- Java
- Factory Method Pattern
- thread
- Today
- Total
목록Design Patterns (3)
goodbye
Factory Method Pattern 1. 정의 구체적으로 어떤 인스턴스를 만들지 서브 클래스가 정하는 패턴 다양한 구현체가 있고, 그중에서 특정한 구현체를 만들수 있는 다양한 팩토리 제공 가능 객체 생성 역할을 별도의 팩토리 클래스에게 위임하는것이 가장 큰 목표 사용 예 조건에 따라 객체를 다르게 생성해야할때 사용자의 입력 값에 따라 하는 일이 달라질 경우 분기를 통해 특정 객체를 생성 분기에 다른 객체 생성을 직접하지 않고 팩토리라는 클래스에 위임하여 객체를 생성 즉 팩토리는 말 그대로 객체를 찍어내는 공장을 의미함 2. Simple Factory 패턴 호출하는 쪽이 객체의 생성자에 직접 의존하고 있으면 변경되었을때 수정해야하는 코드가 많이 발생 생성자 호출을 별도의 클래스에서 담당 클라이언트 코..

싱글톤 패턴을 깨트리는 방법 1. 리플렉션 앞에서 구현한 멀티쓰레드에 안전한 static inner class 를 사용하여 인스턴스를 생성 Constructor 를 이용하여 인스턴스를 생성한 경우 두 인스턴스를 비교하면 같지 않다 2. 직렬화 & 역직렬화 객체(인스턴스)를 영속화 할 경우 보통 DB에 저장하지만 File 저장하는 경우도 있음 이렇게 Object를 파일형태로 저장할때 자바는 직렬화, 역직렬화가 필요함 Serializable 인터페이스와 readResolve 메서드를 구현하면 싱글톤 유지 가능 3. enum 사용하기 enum 을 이용한 인스턴스 생성은 로딩할때 인스턴스가 만들어진다 그리고 java 에서 enum 인스턴스를 new 로 reflection 하는것은 불가능하다 따라서 enum 인스..

1. 싱글톤(singleton) 패턴 싱글톤이란 인스턴스를 오직 한개만 제공하는 패턴 시스템 런타임, 환경세팅에 대한 정보 등 인스턴스가 여러개일때 문제가 생길 수 있는 경우 인스턴스를 오직 한개만 만들어 제공 2. 두개의 인스턴스 비교 다음과 같이 public class 클래스를 만들고 new 예약어를 통해 생성한 인스턴스를 비교해보면 두 인스턴스는 같지 않다는 결과를 확인 가능 클래스 외부에서 클래스의 인스턴스를 생성 할 수 있기 때문에 외부에서 인스턴스 생성 제한 필요성을 확인 할 수 있다 3. private , static 클래스 외부에서 클래스의 인스턴스를 직접 생성 할 수 있기때문에 private 예약어를 통해 외부에서 생성을 제한하고 메서드를 통해 인스턴스를 생성하도록 구현 a. privat..