본문 바로가기

Language/Java2

Effective Java 3장 - 모든 객체의 공통 메서드 [10] equals는 일반 규약을 지켜 재정의논리적 동치성: 참조 타입 변수에서 핵심값이 동일하다면 논리적으로 동일하다 판단물리적 동치성: 메모리에 저장된 변수가 가지는 값이 동일한지 판단equals를 재정의하지 않는 것을 권장하는 상황각 인스턴스가 본질적으로 고유인스턴스의 논리적 동치성을 검사할 필요 없음상위 클래스에서 재정의한 equals가 하위 클래스에도 적합클래스가 private, package-private이고, equals 메서드를 호출할 일 없음equals를 재정의해야 하는 상황논리적 동치성을 확인해야 하는데, equals가 논리적 동치성을 비교하도록 재정의되지 않은 경우같은 인스턴스가 2개 이상 만들어지지 않는 것을 보장하는 경우는 제외equals 메서드를 재정의할 때 지켜야 하는 일반 .. 2024. 5. 25.
Effective Java 2장 - 객체 생성과 파괴 [01] 생성자 대신, 정적 팩터리 메서드정적 팩터리 메서드의 장점함수명 지정 가능생성자와 매개변수만으로는 객체의 특성을 설명하기 어려움정적 팩터리 메서드는 이름으로 객체의 특성 묘사 가능호출될 때마다 새 인스턴스 생성 필수X불변 클래스의 경우, 인스턴스를 만들어두거나 캐싱해 재활용 가능플라이웨이트 패턴인스턴스를 가능한 공유해서 메모리를 절약하는 패턴반환 타입의 하위 타입 반환 가능반환할 객체의 클래스를 자유롭게 선택하는 유연성입력 매개변수에 따라 매번 다른 클래스의 객체 반환 가능반환 타입의 하위 타입이면, 어떤 클래스의 객체든 반환 가능예시 : EnumSet정적 팩터리 메서드를 작성하는 시점에는 반환할 객체의 클래스가 부재해도 된다정적 팩터리 메서드의 단점public이나 protected 생성자 없이.. 2024. 5. 25.
반응형