DEV ℧ Developer Diary

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

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

item04에 static 메소드가 주로 사용되는 util클래스의 경우 생성자를 private로 만들어서 인스턴스화를 막아야 한다고 했지만, 전부 private 생성자를 만들어 막는것은 좋지가 않다.

예를 들어,

Util 클래스가 여러 클래스에 의존하는 경우는 private 생성자를 이용해 막는것이 옳지 않다. 아래...

[EffectiveJava] item04 - 인스턴스화를 막거든 private 생성자를 사용하라.

인스턴스화를 막거든 private 생성자를 사용하라

코딩을 하다보면 static메서드와 static 필드만을 담은 클래스를 만들 경우가 있다. 대표적인 예를 든다면, util클래스가 그럴것이다.

자바에서 기본적으로 제공하는 클래스 중에서 본다면 java.lang.Math 클래스와 java.util.Arrays 클래스가 있다. 또한, java.util.Collections 클래스처럼 특정 인터페이스를 구현하는 객체를...

[Silver4] No.01021 회전하는 큐

회전하는 큐

No.01021 회전하는 큐

문제

지민이는 N개의 원소를 포함하고 있는 양방향 순환 큐를 가지고 있다. 지민이는 이 큐에서 몇 개의 원소를 뽑아내려고 한다.

지민이는 이 큐에서 다음과 같은 3가지 연산을 수행할 수 있다.

  1. 첫 번째 원소를 뽑아낸다. 이 연산을 수행하면,...

[EffectiveJava] item03 - private 생성자나 열거(enum) 타입으로 싱글턴임을 보증하라.

private 생성자나 열거(enum) 타입으로 싱글턴임을 보증하라.

먼저, 싱글턴이 뭔지 간단하게 알아보자.

싱글턴(singleton)이란? 인스턴스를 오직 하나만 생성할 수 있는 클래스를 말한다. 싱글턴은 클래스의 인스턴스를 단 한번만 생성하는 것으로, 메모리 측면이나, 데이터 공유가 용이하다.

보통 싱글턴의 선언에는 두가지 방식이 쓰인다. 두 방식 모두 생성자는 private로 감춘뒤...

[EffectiveJava] item02 - 생성자에 매개변수가 많다면 빌더를 고려하라.

생서자에 매개변수가 많다면 빌더를 고려하라.

정적 팩터리와 생성자에는 똑같은 제약이 하나있다. 선택적 매개변수가 많을때 적절히 대응하기 어렵다는 점이다.

예를 들어, 다수의 항목을 가지고 있는 클래스가 있다고 생각해보자.

public class Music{ private String title<span...