본문 바로가기

이펙티브자바2

이펙티브 자바 4장 규칙14. public 클래스 안에는 public 필드를 두지 말고 접근자 메서드를 사용하라 Public 클래스의 경우 선언된 패키지 밖에서도 사용가능한 클래스에는 접근자 메서드를 제공하라. 그래야만 클래스 내부 표현을 자유로이 수정 가능하게 됌 하지만, immutable 필드의 경우 필드를 외부로 공개한다고 해도 심각성이 좀 덜할 순 있음 그래도 그럴 필요가 있는지는 의문 Package-Private 클래스나 private중첩 클래스의 경우 데이터 필드를 공개하더라도 잘못은 아님. 되려 더 깔끔한 코드가 될 수도 있음. 결론적으로, 되도록 필드를 외부로 공개하는 행위는 하지 않는 것이 좋다는 것. 2021. 3. 14.
이펙티브자바 2장 규칙4. 객체생성을 막을 때는 private 생성자를 사용하라 Effective Java 2장 객체의 생성과 삭제 규칙 4. 객체생성을 막을 때는 private 생성자를 사용하라 정적메서드나 필드만 모은 클래스를 만드는 상황이 생길 수 있음. 유틸성 클래스들(static 필드나 메서드만을 가지고 있는) ex) java.util.Math 보통 아무런 인자가 없는 default 생성자가 기본적으로 만들어지기 때문에, 클래스를 abstract 으로 선언하는 것은 소용 없음. 따라서, 객체생성을 막고 싶다면 private 생성자를 클래스에 생성해 객체를 생성하는 것을 방지해야 함. private AClass(){ throw new AssertionError(); } 위와같이 private 생성자 안에 AssertionError를 예외처리 해줄 수 있음. 해당 방법을 사용하.. 2021. 2. 17.