
우리가 클래스를 작성할 때, Object 의 기본 toString() 메서드가 우리가 작성한 클래스의 유의미한 정보를 제공해주는 경우는 거의 없다. 이 메소드는 PhoneNumber@adbbd 처럼 단순히 클래스_이름 @ 16진수로 표현한 해시코드 를 반환할 뿐이다. 잘 정의된 toString 은 디버깅을 손쉽게 만들어준다 Java에서 toString 의 규약은 모든 하위 클래스에서 이 메서드를 재정의하라고 한다. toString 을 잘 구현한 클래스는 사용하기에 훨씬 즐겁고, 그 클래스를 사용한 시스템은 디버깅하기 쉽다. toString 메서드는 객체를 println, printf, 문자열 연결 연산자, assert 구문에 넘길 때, 혹은 디버거가 객체를 출력할 때 자동으로 불린다. 예컨대 우리가 작성..

우리는 보통 public 생성자를 사용해서 클래스의 인스턴스를 얻는다. 그러나 생성자를 private 으로 지정한다면, 해당 클래스 외부에서 생성자를 사용해 인스턴스를 생성할 수 없다. 그렇다면 private 생성자를 어떤 경우에 사용하면 좋을지 알아보도록 하자 private 생성자나 열거 타입으로 싱글턴임을 보장하기 싱글톤 (Singleton) 클래스란 인스턴스가 오직 하나만 존재하는 클래스를 말한다. 그런데 클래스를 싱글톤으로 만들면 이를 사용하는 클라이언트를 테스트하기가 어려워진다. 타입을 인터페이스로 정의한 다음 그 인터페이스를 구현해서 만든 싱글톤이 아니라면 싱글톤 인스턴스를 가짜(mock) 구현으로 대체할 수 없다. 싱글톤을 만드는 방식은 보통 두 가지가 존재한다. 일단 두 방식 모두 생성자를..
Comment