도서/정리

도서/정리

[이펙티브 자바] 아이템5. 자원을 직접 명시하지 말고 의존 객체 주입을 사용하라

아이템5. 자원을 직접 명시하지 말고 의존 객체 주입을 사용하라 클래스가 내부적으로 하나 이상의 자원에 의존하고, 그 자원이 클래스 동작에 영향을 주는 경우가 있다. 아래의 SpellChecker 클래스는 사전(Dictionary)에 의존하고 있는데 아래처럼 구현하는 경우를 많이 볼 수 있다. 정적 유틸리티 사용 public class SpellChecker { private static final Lexicon dictionary = new LexiconDictionary(); private SpellChecker() { // 객체 생성 방지 } private static boolean isValid(String word) {...} // dictionary를 사용한 로직 public static L..

도서/정리

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

아이템4. 인스턴스화를 막으려거든 private 생성자를 사용하라 가끔 단순히 정적 메서드와 정적 필드만을 담은 클래스를 사용하면 유용할 때가 있다. 대표적으로 java.lang.Math, java.util.Arrays 와 같이 기본 타입 값이나 배열에 관련된 메서드들을 모아 놓는 유틸리티 클래스들을 사용할 수 있다. 또한 java.util.Collections 와 같이 특정 인터페이스를 구현하는 객체를 생성해 주는 정적 팩터리 메서드를 모아 놓을 수도 있다. 이러한 유틸리티 클래스들은 따로 인스턴스 변수나 메서드가 없어도 사용할 수 있으므로 생성자가 필요하지 않다. 하지만 생성자를 명시하지 않으면 컴파일러가 자동으로 기본 생성자를 만들어 준다. 즉, 매개변수를 받지 않는 public 생성자가 만들어지며..

도서/정리

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

아이템3. private 생성자나 열거 타입으로 싱글턴임을 보증하라 싱글톤 이란? 싱글톤이란 인스턴스를 오직 하나만 생성할 수 있는 클래스를 말한다. 싱글톤의 전형적인 예로는 무상태 객체나 유일한 시스템 컴포넌트를 들 수 있다. 하지만 싱글톤 클래스는 타입을 인터페이스로 정의하고 그것의 구현체로 정의한 것이 아니라면 테스트하기 어렵다는 문제가 있다. 싱글톤을 만드는 방법 1. public static 멤버가 final 필드인 방식 public class Elvis { public static final Elvis INSTANCE = new Elvis(); private Evlis () { } public void sining () { System.out.println("lalala"); } } priva..

도서/정리

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

아이템2. 생성자에 매개변수가 많다면 빌더를 고려하라 빌더 패턴이란? 빌더 패턴은 선택적 매개변수가 많은 상황에서 생성자 혹은 정적 팩토리 메서드보다 더 유용하게 사용할 수 있다. 필더 패턴을 이해하기 위해 예시로 가상의 가방(Bag) 객체를 만들 것이다. 가방을 주문하여 만들 때, 가방의 크기는 필수로 입력해야 하지만, 나머지 옵션들은 주문하는 사람이 마음대로 결정할 수 있다고 가정하자. 여기서 필수 매개변수는 가방의 사이즈가 될 것이고, 여러 옵션들은 매개변수가 될 것이다. 빌더 패턴 사용 전 빌더 패턴을 사용하기 전에는, 많은 선택적 매개변수를 처리하기 위해 아래 두 가지 패턴이 사용 된다. 1) 점층적 생성자 패턴 (Telescoping Constructor Pattern) 점층적 생성자 패턴은 ..

도서/정리

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

아이템1. 생성자 대신 정적 팩토리 메서드를 고려하라 정적 팩토리 메서드(Static Factory Method)란? 직접적으로 생성자를 통해 객체를 생성하는 것이 아닌 메서드를 통해서 객체를 생성하는 것을 정적 팩토리 메서드라고 한다. 객체 생성의 역할을 하는 클래스 메서드 라는 의미이다. 클래스는 클라이언트에게 public 생성자 대신 static 팩토리 메서드를 제공할 수 있다. 여기서 말하는 팩토리 메서드는 디자인 패턴에서 나오는 팩토리 메서드 패턴과 다른 의미이다. 생성자와의 차이는?! 실제로 정적 팩토리 메서드가 어떤 방면에서 생성자보다 좋은지 하나씩 알아보자. 1. 이름을 가질 수 있다. public class Board { pricate String title; //일반적인 생성자를 만들어..

맹수호빵
'도서/정리' 카테고리의 글 목록 (2 Page)