일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 너비우선탐색
- 우선순위큐
- SQL
- DFS
- join
- mariaDB
- Spring
- db
- Effective Java
- 백준
- 코테
- 깊이우선탐색
- 탐욕법
- 다이나믹프로그래밍
- IntelliJ
- BFS
- mybatis
- 프로그래머스
- DP
- java
- springboot
- 알고리즘
- select
- 피보나치
- Greedy
- 데이터베이스
- Database
- 이펙티브자바
- 그리디알고리즘
- 정렬
- Today
- Total
목록이펙티브자바 (24)
땀두 블로그

이펙티브 자바 3판을 읽으면서 내용을 정리하는 포스트입니다. 혹시 틀린 부분이나 잘 못 설명한 부분이 있으면 댓글로 남겨주시면 수정하도록 하겠습니다. Item 4. 인스턴스화를 막으려거든 private 생성자를 사용하라. 정적 메소드와 정적 필드만 담은 클래스는 객체지향적이지 않지만 나름의 쓰임은 있다. java.lang.Math, java.util.Arrays와 같이 기본 타입 값이나 배열 관련 메소드를 모아둘 수 있다. java.util.Collections와 같은 인터페이스 구현 객체를 모아두는 정적 메소드를 모아둘 수 있다. final 클래스 관련 메소드들을 모아둘 수 있다. 하지만 이러한 경우 생성자를 명시하지 않으면 컴파일러에서 자동으로 기본 생성자를 생성하여 사용자가 구분이 어렵다. 이는 p..

이펙티브 자바 3판을 읽으면서 내용을 정리하는 포스트입니다. 혹시 틀린 부분이나 잘 못 설명한 부분이 있으면 댓글로 남겨주시면 수정하도록 하겠습니다. Item 3. private 생성자나 열거 타입으로 싱글톤임을 보증하라. 싱글톤 인스턴스를 오직 하나만 생성할 수 있는 클래스 무상태 객체(stateless Object) 시스템 컴포넌트 DB Connection Pool 등 클래스를 싱글턴으로 만들면 이를 사용하는 클라이언트를 테스트하기 어려워질 수 있다. 타입을 인터페이스로 정의한 다음 그 인터페이스를 구현해 만든 싱글턴이 아니라면 싱글턴 인스턴스를 가짜 구현(mock)으로 대체할 수 없기 때문이다. 싱글톤 생성 방식 1. public static final을 이용한 방식 public class Book..

이펙티브 자바 3판을 읽으면서 내용을 정리하는 포스트입니다. 혹시 틀린 부분이나 잘 못 설명한 부분이 있으면 댓글로 남겨주시면 수정하도록 하겠습니다. Item2. 생성자에 매개변수가 많다면 빌더를 고려하라 매개변수가 많은 클래스가 있을 경우의 3가지 코드를 예시로 들어보겠다. 점층적 생성자 패턴 점층적 생성자 패턴은 가장 단순한 패턴으로 필수로 들어가야하는 파라미터를 포함한 생성자와 선택적으로 필요한 파라미터를 포함하는 생성자를 각각 만들어주는 것이다. public class item2 { private int required1; private int required2; private int required3; private int optional1; private int optional2; public..

이펙티브 자바 3판을 읽으면서 내용을 정리하는 포스트입니다. 혹시 틀린 부분이나 잘 못 설명한 부분이 있으면 댓글로 남겨주시면 수정하도록 하겠습니다. Item 1. 생성자 대신 정적 팩토리 메서드를 고려하라. 클래스에서 인스턴스를 얻는 전통적인 수단은 public 생성자를 이용하는 방식이다. 하지만 public 생성자를 대신하거나 함께 정적 팩토리 메소드를 제공할 수 있다. 정적 팩토리 메소드를 사용할 때의 장점 1. 이름을 가질 수 있다. 생성자와 생성자에서 사용되는 파라미터로는 반환될 객체에 대해서 제대로 설명하기 어렵다. 아래에 코드를 보면 class Book { private String title; public Book() { } public Book(String title) { this.tit..