일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
31 |
- error
- 자바
- 회원가입
- loopback 설치
- loopback
- AWS
- loopback document
- StrongLoop
- Loopback api
- Java
- the public type
- Amazon
- 루프백
- 아마존
- Loopback 모델
- AWS 가입
- java error
- Today
- Total
목록Java/Effective Java (5)
퍄퍄

toString 의 기본규약 - 간결하면서 사람이 읽기 쉬운 형태의 유익한 정보를 반환할 것 오브젝트의 기본 toString 메소드는 단순히 클래스이름@16진수로표시한해시코드 를 반환한다. toString 을 자동으로 호출하는 경우 - println(), printf() - 문자열 연결 연산자(+) - assert 구문에 객체를 넘길 때 - 디버거가 객체를 출력할 때 - 작성된 객체를 참조하는 컴포넌트가 오류 메시지를 로깅할 때 이 경우 toString 메소드를 재정의하지 않으면 쓸모없는 메시지만이 로그에 남거나 출력된다. 실제로 toString 은 그 객체가 가진 주요 정보들을 모두 반환해주는 것이 좋다. toString 반환값의 포맷을 명시하는 경우 - 전화번호, 행렬 등의 값 클래스라면 문서화를 권..

많은 클래스가 하나 이상의 자원에 의존한다. 예를 들어 맞춤법 검사기는 보통 사전에 의존하는데, 이 경우 아래 그림과 같이 클래스를 정적 유틸리티 클래스로 구현하거나 싱글턴으로 구현하는 경우도 있다. 이렇게 구현할 경우, 실제로 언어별, 특수 어휘용, 테스트용 사전 등 여러 쓰임새가 있기에 사전 하나로 이 모든 쓰임에 대응하기엔 유연하지 않고 테스트하기 어렵다는 단점이 있다. 의존 객체 주입 패턴 > 인스턴스를 생성할 때 생성자에 필요한 자원을 넘겨주는 방식 사용하는 자원에 따라 동작이 달라지는 클래스에는 정적 유틸리티 클래스나 싱글턴 방식이 적합하지 않다. 대신 클래스가 여러 자원 인스턴스를 지원해야 하며, 클라이언트가 원하는 자원을 사용해야 한다. 맞춤법 검사기와 사전을 예로 들면, 맞춤법 검사기를 ..

단순히 정적 필드, 정적 메소드만을 담은 유틸리티 클래스를 만들 때는 해당 클래스를 인스턴스로 만들어 쓰려고 설계하지 않는다. 생성자를 명시하지 않으면 컴파일러가 자동으로 public 생성자를 만들어 줄 것이며, 추상클래스로 만든다고 해도 해당 클래스를 상속받은 하위 클래스를 통해 인스턴스화 할 수 있다. 컴파일러가 기본 생성자를 만드는 경우는 명시된 생성자가 없을 경우이니 private 생성자를 추가해 클래스의 인스턴스화를 막도록 한다. private 생성자를 추가하고 Error 처리를 해줌으로써 해당 클래스 내부에서도 생성자 호출을 막는다. 또한, 모든 생성자는 상위 클래스의 생성자를 호출하는데 private 로 선언했기 때문에 하위 클래스가 상위 클래스의 생성자에 접근할 수 없으므로 상속 또한 불가..

싱글턴 - 인스턴스를 오직 하나만 생성할 수 있는 클래스 싱글턴을 만드는 세 가지 방식 public static final 필드 방식의 싱글턴 여기서 private 생성자는 SingletonClass.INSTANCE 를 호출할 때 딱 한 번 호출된다. public, protected 생성자가 따로 없으므로 SingletonClass 가 초기화될 때 생성된 인스턴스가 전체 시스템에서 하나뿐임이 보장된다. 장점 > 해당 클래스가 싱글턴임이 API 에 명백히 드러난다. public static 필드가 final 이니 다른 객체를 절대 참조할 수 없다. > 간결하다. 정적 팩토리 방식의 싱글턴 정적 팩토리 메소드를 public static 멤버로 제공한다. SingletonClass.getInstance() 는..
책에서는 클래스가 클라이언트에 인스턴스를 제공하는 두 가지 방식을 설명한다. public 생성자를 통해 제공 정적 팩토리 메소드를 통한 인스턴스 반환 정적 팩토리 메소드가 사용함에 있어 유리한 경우가 더 많지만 정적 팩토리 메소드와 public 생성자는 각각의 쓰임새가 있어 public 생성자의 장점과 단점을 나열한다. 이름을 가질 수 있다. - 생성자를 통한 객체 반환을 사용할 경우 반환 객체의 특성을 쉽게 알기 힘들며 한 클래스에 시그니처가 같은 생성자가 여러 개 필요할 경우, 특성을 표현하기 쉬운 네이밍으로 여러 개의 정적 팩토리 메소드를 만들어 쓰는 것을 추천한다. 호출될 때마다 인스턴스를 새로 생성하지는 않아도 된다. - 불필요한 객체 생성을 피할 수 있으므로 생성 비용이 큰, 같은 객체를 자주..