본문 바로가기

Effective Java 3rd/Chapter 2. 객체 생성과 파괴

Item 1. 생성자 대신 정적 팩터리 메서드를 고려하라

반응형

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할 때에도 사용 가능함

장점

  1. 이름을 가질 수 있다.
    1. ex) ofModelNameAndCompany(String modelName, String company)너무 길명 그렇지만, 중요한 정보만이라도 전달 할 수 있다.
    2. 이와 같은 식으로 메서드 명에 파라미터가 무엇이 들어갈 지 알 수 있도록 쓸 수 있다.
  2. Simple하고 명확하게 사용할 수 있다.
  3. 인스턴스를 매번 생성할 필요는 없다.
    1. Flyweight patttern - Collection Object
    2. Singleton pattern - Single Object
    (Singleton의 경우 한 객체, Flyweight의 경우 multiple한 객체를 다룬다)

단점

  1. Static Factory method만 제공하면 Constructor가 없을 수 있어 상속받은 Class를 만들 수 없다.
  2. 프로그래머에게 인지가 잘 되지 않을 수 있다.
반응형