객체를 생성하는 전통적인 수단은 public 생성자다. 하지만 객체를 생성하는 방법은 생성자 뿐이 아니다. 아래는 객체를 생성하는 또 다른 패턴이다. 정적 팩터리 메서드 패턴의 장/단점을 알아보자.이름을 가질 수 있다.모든 생성자는 클래스와 이름이 같기 때문에 이름만으
정적 팩터리와 생성자는 선택적 매개변수가 많을 때 적절히 대응하기가 어렵다. 선택적 매개변수가 많은 클래스를 생성하는 다양한 방법을 살펴보고 왜 빌더 패턴이 다양한 매개변수를 처리하기에 유리한지 알아보자.NutritionFacts는 필수 필드2개와 선택 필드 4개로 이
싱글턴이란 인스턴스를 오직 하나만 생성할 수 있는 클래스다. 인스턴스를 하나만 만들어야 하는 예는 다음과 같다.무상태(stateless) 객체설계상 유일해야 하는 컴포넌트그러나 클래스를 싱글턴으로 만들면 테스트 하기가 어려워진다는 단점이 있다. 인터페이스를 구현해서 만
유틸리티 기능을 제공하려면 보통 정적 메서드, 정적 필드만 담은 클래스를 필요로 한다.java.lang.Math,java.util.Arrays 와 같은 클래스는 기본 타입 값과 배열 관련메서드들을 모아 놓은 유틸리티 클래스다. 혹은 java.util.Collection
유틸리티 기능을 제공하려면 보통 정적 메서드, 정적 필드만 담은 클래스를 필요로 한다.java.lang.Math,java.util.Arrays 와 같은 클래스는 기본 타입 값과 배열 관련메서드들을 모아 놓은 유틸리티 클래스다. 혹은 java.util.Collection
똑같은 객체를 매번 생성하는 것보다 객체 하나를 재사용하는 것이 나을 경우가 많다. 위의 코드에서 new 키워드로 생성자를 호출하면 새로운 메모리가 할당된다. 해당 문장이 반복문을 통해 수백만번 호출되면 쓸데 없는 String 인스턴스 수백만 개가 메모리를 할당 받게된
C, C++ 처럼 메모리를 직접 관리해야 하는 언어를 사용하다가 자바를 사용하면 다 쓴 객체를 알아서 회수해가는 가비지 콜렉션이 매우 편리하게 느껴진다. 그렇다고 메모리 관리를 아예 신경쓰면 안 된다는 것은 아니다. 자바에서도 잘못된 코드로 메모리 누수가 일어날 수 있
자바 라이브러리는 close 메서드를 통해 호출해 닫아줘야 하는 자원이 많다.InputStream, OutputStreamjava.sql.Connectionclose 메서드가 호출되지 않으면 이는 성능 문제로 이어질 수 있다. 전통적으로 close 메서드는 try-fi