20181004

Java

  • 생성자가 여러개인 경우 그 의미가 불명확해 진다.
    • static method(factory method)를 통해 의미를 명확히 하고, 그 역할을 대신할 수 있다.
      1. 생성자를 private 으로 설정한다.
      • 해당 class의 factroy method를 사용하여 생성할 것이므로, 외부에서 생성을 하지 못하도록. 2. factory method는 of 키워드를 사용하는게 일반적이다.
    public calss Point {
        private int x;
        private int y;

        private Point(int x, int y){
            this.x = x;
            this.y = y;
        }
        public static Point of(int x, int y){
            return new Point(x, y);
        }

        public static Point ofComma(String text){
            String[] xy = text.split(",");
            return new Point(Integer.parseInt(xy[0]), Integer.parseInt(xy[1]));
        }
    }
  • 데이터의 유효성을 검증할 때, 생성자에서 검증하는 것이 안전하다.
    • 생성자에서는 예외처리 로직이 없고, 외부에서 예외처리 로직을 구현하여 유효한 값을 던지는 경우.
    • 어떤 방법이든 만약 예외처리 로직을 건너 뛸 경우 언제든지 유효하지 않은 값으로 생성된 인스턴스가 생성될 수도 있다.