책/Effective Java

책/Effective Java

[이펙티브 자바] 아이템4: 인스턴스화를 막으려거든 private 생성자를 사용하라

본문은 Effective Java를 읽고 간단하게 정리한 글입니다. 필요에 따라 생략/수정된 부분이 있을 수 있으며, 내용이 추후 변경될 수 있습니다. 정적 메서드와 정적 필드만을 담은 클래스를 만들고 싶을 때가 있음 java.lang.Math, java.util.Arrays: 기본 타입 값이나 배열 관련 메서드들을 모아놓을 수 있음 java.util.Collections: 특정 인터페이스를 구현하는 객체를 생성해주는 정적 메서드(혹은 팩터리) final클래스와 관련된 메서드들을 모아놓을 때 사용 final클래스는 상속이 불가능 -> 기능의 확장이 어려움 관련된 메서드들을 모아 놓음으로써 기능의 확장이 용이해짐 생성자를 명시하지 않으면 컴파일러가 자동으로 기본 생성자를 만들어줌 즉, 매개변수를 받지 않는..

책/Effective Java

[이펙티브 자바] 아이템3: private 생성자나 열거 타입으로 싱글턴임을 보증하라

본문은 Effective Java를 읽고 간단하게 정리한 글입니다. 필요에 따라 생략/수정된 부분이 있을 수 있으며, 내용이 추후 변경될 수 있습니다. 싱글턴 만드는 방법 주된 2가지 방법1 - final 필드) public static final INSTANCE 방법2 - 정적 팩터리 메서드) private static final INSTANCE + public static getInstance 방법1과 방법2의 공통점 private 생성자 이용 유일한 인스턴스에 접근할 수 있는 수단으로 public static 멤버 마련 생성자가 두 번 호출될 시에 방어가 필요함 이유가 궁금하면 '도둑클래스' 키워드로 검색 방법3 public 필드 방식과 유사하지만 직렬화하기 쉬움 아주 복잡한 직렬화 상황이나 리플렉..

책/Effective Java

[이펙티브 자바] 아이템2: 생성자에 매개변수가 많다면 빌더를 고려하라

본문은 Effective Java를 읽고 간단하게 정리한 글입니다. 필요에 따라 생략/수정된 부분이 있을 수 있으며, 내용이 추후 변경될 수 있습니다. 정적 팩터리 메서드와 생성자에는 선택적 매개변수가 많을 때 적절히 대응하기 어렵다는 공통적인 제약이 있다. 이에 따른 해결방안으로 여러가지 해결책을 소개하고자 한다. 해결책 1: 점층적 생성자 패턴 먼저 필수 매개변수만 받는 생성자를 지정하고, 필요에 따라 선택 매개변수를 추가하는 점층적 생성자 패턴이 있다. // IDE의 도움 없이는 읽기가 상당히 불편하다.. NutritionFacts cocaCola = new NutritionFacts(240, 8, 100, 0, 35, 27); 이런 생성자를 쓰다보면 필요하지 않은 매개변수를 포함하는 경우가 발생하..

책/Effective Java

[이펙티브 자바] 아이템1: 생성자 대신 정적 팩터리 메서드를 고려하라

본문은 Effective Java를 읽고 간단하게 정리한 글입니다. 필요에 따라 생략/수정된 부분이 있을 수 있으며, 내용이 추후 변경될 수 있습니다. 정적 팩터리 메서드가 생성자보다 좋은 장점 다섯가지 1. 이름을 가질 수 있다 이름을 잘 지으면 변환될 객체의 특성을 쉽게 묘사가능 하나의 시그니처로 생성자를 여러개 만들고 싶을 때 사용하면 좋다.. 2. 호출될 때마다 인스턴스를 새로 생성하지 않아도 된다 인스턴스를 미리 만들어 놓거나 새로 생성한 인스턴스를 캐싱하여 재활용하는 식으로 불필요한 개체 생성을 피할 수 있다 싱글턴, 인스턴스화 불가, 불변 값 클래스에서 동치인 인스턴스가 단 하나뿐임을 보장(a == b일 때만 a.equals(b)) 3. 반환 타입의 하위 타입 객체를 반환할 수 있는 능력이 ..

코택
'책/Effective Java' 카테고리의 글 목록 (11 Page)