반응형
Constructor 와 Static Factory method의 비교
생성자 대신에 Static Factory Method → 이름을 가지는 메서드..
- 객체 하나를 가져와서 컨버팅하는 것이라면 from
- ofModelNameAndCompany 명확하게 재료를 알고 of 를 사용함
Api request with LptopForm
랩탑에 대한 정보를 받아서 추가하게 될텐데, 그리고 Dto를 리턴할 경우
LaptopForm → 밖에서 받는 request 라는걸 표현..
Laptop으로 convert해줄 필요가 있을 경우
from static method만들기.. 바로 새로운 인스턴스 Form을 받아서 새로운 인스턴스를 생성한다고 인지 할 수 있다.
from~, of~
Response할 때에도 사용 가능함
장점
- 이름을 가질 수 있다.
- ex) ofModelNameAndCompany(String modelName, String company)너무 길명 그렇지만, 중요한 정보만이라도 전달 할 수 있다.
- 이와 같은 식으로 메서드 명에 파라미터가 무엇이 들어갈 지 알 수 있도록 쓸 수 있다.
- Simple하고 명확하게 사용할 수 있다.
- 인스턴스를 매번 생성할 필요는 없다.
- Flyweight patttern - Collection Object
- Singleton pattern - Single Object
단점
- Static Factory method만 제공하면 Constructor가 없을 수 있어 상속받은 Class를 만들 수 없다.
- 프로그래머에게 인지가 잘 되지 않을 수 있다.
반응형
'Effective Java 3rd > Chapter 2. 객체 생성과 파괴' 카테고리의 다른 글
Item 6. 불필요한 객체 생성 금지 (1) | 2021.11.07 |
---|---|
Item 5. Resource를 직접 명시하지 말고, Dependency Injection을 사용하라 (1) | 2021.11.07 |
Item 4. Instance화를 막으려면 private constructor를 사용하라 (0) | 2021.11.07 |
Item 3. private constructor 나 enum Type으로 Singleton임을 보증하라. (0) | 2021.11.07 |
Item 2. 많은 parameter가 있는 Constructor는 Builder를 고려하라 (0) | 2021.11.07 |