ReadingBooks 2

[Effective Java] 모든 객체의 공통 메서드

equals는 일반 규약을 지켜 재정의하기 equals를 overriding하지 않는 경우 각 인스턴스가 본질적으로 고유함 인스턴스의 논리적 동치성 검사 불필요 상위 클래스의 equals가 하위 클래스에도 잘 맞음 클래스가 private이거나, package-private이어서 equals 호출 안함 equals를 overriding해야 하는 경우 논리적 동치성을 확인해야 하는 경우 equals 동치관계 구현 조건 반사성 : 객체는 자기 자신과 같아야 함 대칭성 : 두 객체는 서로에 대한 동치 여부에 동일한 답을 해야 함 추이성 : 첫번째 == 두번째 == 세번째 일관성 : 두 객체가 같다면 영원히 같아야 함 Non-null : 모든 객체가 null과 같지 않아야 함 equals 구현 방법 ==로 입력이..

ReadingBooks 2021.07.30

[Effective Java] 객체 생성과 파괴

생성자 대신 정적 팩터리 메서드를 고려하기 정적 팩터리 메서드 장점 이름을 가질 수 있음 호출될 때마다 인스턴스를 생성할 필요가 없음 반환 타입의 하위 타입 객체를 반환할 수 있음 입력 매개변환에 따라 매번 다른 클래스의 객체를 반환할 수 있음 정적 팩터리 메서드를 작성하는 시점에는 반환할 객체의 클래스가 존재하지 않아도 됨 정적 팩터리 메서드 단점 정적 팩터리 메서드만 제공하면 하위 클래스 생성 불가 정적 팩터리 메서드는 개발자가 찾기 어려움 매개변수가 많으면 builder를 고려하기 빌더 패턴 = 안정성(점층적 생성자 패턴) + 가독성(자바 빈즈 패턴) 빌더 패턴은 계층적 클래스와 함께 쓰기 좋음 private 생성자나 enum으로 singleton을 보증하기 싱글턴 생성 방식 public stati..

ReadingBooks 2021.07.27