Effective Java8 [아이템 5] 자원을 직접 명시하지 말고 의존 객체 주입을 사용하라 SpellChecker라는 맞춤법을 검사하는 클래스가 있다. 이 클래스는 Lexicon이란 사전 클래스를 의존한다. 코드는 아래와 같다. class SpellChecker { private static final Lexicon dictionary = new KoreanDictionary(); public static boolean isValid(String word) { return true; } public static List suggestions(String typo) { return new ArrayList(); } } class KoreanDictionary implements Lexicon { } interface Lexicon { } 코드에선 KoreanDictionary를 직접 생성해서 사.. 2021. 12. 20. [아이템 1] 생성자 대신 정적 팩터리 메서드를 고려하라 자바에서 인스턴스를 생성하는 대표적인 방법은 new 키워드를 사용해 생성자를 호출하는 것이다. 기본적으로 파라미터가 없는 디폴트 생성자를 제공하며, 상황에 따라 파라미터를 추가해 다양한 생성자를 만들 수 있다. 이펙티브 자바 1장에서는 정적 팩토리 메서드를 소개한다. 처음 정적 팩토리 메서드란 표현이 낯설었는데 개념은 간단하다. 인스턴스를 반환하는 static method이다. 책에서 소개하는 정적 팩토리 메서드의 장점 1. 이름을 가질 수 있다. 생성자의 이름은 클래스명과 동일하게 만들어야 한다. 하지만 method는 다양하게 작명이 가능하고, 오버로딩을 통해 같은 이름의 메서드도 여러 개 만들 수 있다. 2. 호출될 때마다 인스턴스를 새로 생성하지 않아도 된다. 예로 Boolean.valueOf() .. 2021. 9. 11. 이전 1 2 다음 728x90