Java/Effective Java(10)
-
[Effective Java] 아이템 3 : private 생성자나 열거 타입으로 싱글턴임을 보증하라
Singleton 싱글톤 패턴은 인스턴스화를 제한하고, 클래스의 하나의 인스턴스만 JVM에 존재하도록 한다. 싱글톤 패턴은 Global access point에서 인스턴스를 가져올 수 있도록 제공한다. 로깅, 드라이버 개체, 캐싱 및 스레드 풀에 사용된다. Abstract Factory, Builder, Protorype and Facade 등과 같은 디자인 패턴에도 사용된다. 장점 객체를 생성하면 재사용이 가능해서 메모리 사용 낭비를 막을 수 있다. 전역 객체이기 때문에 다른 객체와도 공유가 가능하다. 단점 클래스의 싱글턴화 시 클라이언트 테스트가 어려워진다. 타입을 인스턴스 정의 시 구현한 인터페이스로 만든 싱글턴이 아닐시 인스턴스를 Mock로 대체 불가 싱글턴 생성 방식 Public Static F..
2022.03.10 -
[Effective Java] 아이템 2 : 생성자에 매개변수가 많다면 빌더를 고려하라
정적 팩토리와 생성자에는 동일한 제약 조건이 있다. -> 선택적 매개변수가 많을 때 적절히 대응하기 어렵다. 매개 변수가 많아질 경우 사용할 수 있는 세 가지를 고려해 볼 수 있다. 텔레스코핑 생성자 패턴 자바빈즈 패턴 빌더 패턴 (1) Telescoping constructor pattern 필수 매개변수와 선택 매개변수를 갖는 생성자의 형태를 띤다. 아래에 예시를 나타내겠다. 필수 매개변수만 갖는 생성자 필수 매개변수 + 하나의 선택 매개변수 생성자 필수 매개변수 + 두 개의 선택 매개변수 생성자 ... ... 위와 같이 필수 매개변수만 갖는 생성자를 생성할 수 있고, n개의 선택 매개변수를 생성하는 생성자를 함께 갖는 경우의 방식이다. 예제) 식품의 영양 정보를 표현하는 클래스를 생각해보자, 식품의..
2022.03.08 -
[Effective Java] 아이템 1 : 생성자 대신 정적 팩토리 메소드를 고려하라
아이템 1 : 생성자 대신 정적 팩토리 메서드를 고려하라 클래스의 인스턴스를 얻는 전통 수단은 public 생성자이다. 하지만, 꼭 알아둬야 하는 기법 -> static factory method public class item1 { private String name; // public 생성자 public item1(String name) { this.name = name; } // static factory method public static item1 myName(String name) { return new item1(name); } public static void main(String[] args) { item1 my = myName("haessae0"); // static factory m..
2022.03.01 -
[Effective Java] 이펙티브 자바를 읽기 시작..
읽기 시작하는 이유 탄탄하고 효율적이게 코드를 짜는 법을 배우기 위해 읽기 시작한다. 이 책의 주요 원칙 명료성과 단순성 또한, 컴포넌트는 정해진 도앚ㄱ이나 예측 가능한 동작만 수행해고, 가능한 작게 만들어야 한다. 코드는 재사용 되어야 한다. 컴퍼넌트 사이의 유존성은 최소로 유지되어야 한다. 오류는 가능한 빨리 잡혀야 한다. 자바 8용 언어 면세 자바가 지원하는 타입 (자료형) 인터페이스, 클래스, 배열, 기본 타입 총 네 가지 Annotation 인터페이스의 일종, Enum은 클래스의 일종 공부 방법 자바봄 님의 방식 인용 https://javabom.tistory.com/70 처음 보는 용어에 대한 설명 요구 글로만 적혀있는 기술에 대한 사용법 요구 예제 코드에 대한 설명 문단 문맥 이해 코드에 대..
2022.02.28