Book Review

Book Review/effective-java

[ITEM5]자원을 직접 명시하지 말고 의존 객체 주입을 사용하라

ITEM 5 자원을 직접 명시하지 말고 의존 객체 주입을 사용하라 클래스 내부에 하나 이상의 자원에 의존하고 해당 자원이 클래스 동작에 영향을 준다면 생성자를 통해 의존 자원을 주입받자는 의미이다. 해당 기법은 클래스의 유연성 , 재사용성,테스트 용이성을 개선해준다. 위 구절이 해당 아이템이 말하고자하는 핵심이다. 이제 코드를 보며 이해를해보자. 무기 인터페이스 public interface Weapon { //공격을 합니다. void attack(); } 정적 유틸리티 방식 public class Warrior { private final Weapon weapon = new Sword(); // 전사는 weapon 이라는 자원을 직접 생성하여 의존하고있다. private Warrior(Weapon we..

Book Review/effective-java

[ITEM 4] 인스턴스화를 막으려거든 private 생성자를 사용하라

Class 내부에 정적 메서드와 정적필드만을 담은 클래스가 존재할때 이러한 class 는 굳이 인스턴스를 만들어서 사용하지 않아도된다. 왜냐하면 정적 메서드와 정적 필드 만을 담은 Class 들은 대부분 유틸리티로 사용할려고 생성한 클래스이다. 따라서 유틸리티 클래스는 인스턴스로 만들어서 쓰려고 설계한 클래스가 아니기 때문에. 인스턴스화를 막는 것이 좋다. 이 책에서 인스턴스화를 막는 방법으로 두 가지 방법을 설명하고 있다 . 추상 클래스로 만든다. private 생성자를 만든다. 추상 클래스로 만든다. 말 그대로 abstract 클래스는 new 키워드를 이용하여 인스턴스화를 진행 할 수 없기 때문에 spirng 의 유틸리티 클래스는 이 방법을 사용하고 있다. 코드를 보자. public abstract ..

Book Review/effective-java

[ITEM3] private 생성자나 열거타입으로 싱글턴임을 보증하라

ITEM 3 private 생성자나 열거타입으로 싱글턴임을 보증하라 싱글턴(Singleton) 이란 인스턴스를 오직 하나만 생성할 수 있는 클래스를 말한다. 해당 아이템에선 싱글턴을 만드는 3가지 방법을 소개하고 있다. public static final 방식 static factory method 방식 원소가 하나인 Enum 타입 public static final 방식 해당 방식은 생성자를 private 으로 선언하여 접근을 막고 접근할 수 있는 수단을 public staitc fianl 필드로 제한 하는 것이다. 코드로 바로 알아보자 public class PublicStaticFinalSingleton { //초기화 할때 한번만 설정됨으로 하나의 인스턴스만을 보장 할 수 있음 public stat..

Book Review/effective-java

[ITEM 2] 생성자에 매개변수가 많다면 빌더를 고려하라

ITEM 2 생성자에 매개변수가 많다면 빌더를 고려하라. 정적 팩토리와 생성자에는 똑같은 제약이 존재한다. -> 선택적 매개변수가 많을 때 적절히 대응하기 어려움. 다음과 같은 문제를 해결하기위한 3가지 방법을 알아보자. 점층적 생성자 패턴(Teslescoping Constuructor Pattern) 자바빈즈 패턴(JavaBeans Pattern) 빌더 패턴(Builder Ppattern) 해당 User 클래스를 통해 위 3가지 방법을 알아보자. public class User{ private final String name; private final int age; private final String local; private final String phone; } 다음과 같은 User 클래스가 존..

Book Review/effective-java

[ITEM 1] 생성자 대신 정적 팩터리 메서드를 고려하라

ITEM 1 생성자 대신 정적 팩토리 메서드를 고려하라 목표 책에서 소개하는 해당 ITEM 의 5가지 장점과 2가지 단점을 알아보자 장점 이름을 가질 수 있다. 호출될 때마다 인스턴스를 새로 생성하지않아도된다. 반환 타입의 하위 타입 객체를 반환할 수 있는 능력이 있다. 입력 매개변수에 따라 매번 다른 클래스의 객체를 반환할 수 있다. 정적팩토리 메서드를 작성하는 시점에는 반환할 객체의 클래스가 존재하지 않아도 된다. 단점 상속을 하라면 public이나 protected 생성자가 필요하니 정적 팩터리 메서드만 제공하면 하위 클래스를 만들 수 없다. 정적 팩터리 메서드는 프로그래머가 찾기 어렵다. 장점 1. 이름을 가질 수 있다. 생성자에 넘기는 매개변수와 생성자 자체로 반환될 객체의 특성을 잘 설명하지 ..

jay Joon
'Book Review' 카테고리의 글 목록 (3 Page)