클래스의 의존 관계 많은 클래스들은 하나 이상의 자원에 의존한다. 자원에 의존해 기능을 수행하는 클래스는 의존성(dependency) 을 갖는다. 라고 표현할 수 있다. 이러한 클래스의 의존성은 보통 의존하고자 하는 기능을 가진 클래스의 참조변수를 멤버변수로 선언함으로써 표현한다. public class AccountService { private TransferService transferService; public void transfer(Account withdrawalAccount, Account depositAccount) { // business logic start ... } } 위 예시에서 계좌 서비스는 송금 서비스에 의존한다. (계좌 서비스의 기능 구현에는 송금 서비스의 도움이 필요하다...
static 메서드와 필드로만 구성된 클래스 개발을 하다보면 static 메서드와 필드로만 구성된 클래스가 필요한 경우가 있다. 객체지향적인 설계는 아니지만, 다음과 같은 상황이 필요한 경우에는 유용하게 사용할 수 있다. 기본 타입 값이나 처리대상 클래스와 관련된 메서드들을 모아놓은 유틸리티성 클래스의 설계 ex) java.util.Arrays 특정 인터페이스를 구현하는 객체를 생성해주는 정적 메서드 또는 팩토리 ex) java.util.Collections 추가 상속을 방지하기 위한 final 클래스와 관련한 메서드들의 집합 정적 유틸리티 클래스의 설계의도 정적 유틸리티 클래스는 인스턴스로 만들어 쓰기 위해 설계한 것이 아니다. 그런데 자바 언어에서 클래스의 생성자를 명시하지 않는 경우, 매개변수가 없..
싱글턴(singleton) 오직 하나의 인스턴스로 구성된 클래스를 의미한다. 싱글턴은 보통 무상태(stateless) 객체 또는 설계상 유일하게 사용하는 시스템 컨포넌트를 구현할 때 사용한다. 싱글턴 구현방법 1. public static 멤버를 final 필드로 선언 public class WorkScheduler { public static final WorkScheduler INSTANCE = new WorkScheduler(); private WorkScheduler() {} public void resetSchedule() {} } 위 코드에서 private 생성자는 public static final 필드인 INSTANCE 를 초기화할 때 딱 한 번 호출된다. 외부로 노출되는 다른 생성자는 존..
생성자의 매개변수가 많을 때 생성자는 선택적 매개변수가 많아질 때 설계가 곤란해진다. 클래스는 여러 개의 필드를 가질 수 있기 때문에, 초기화대상 필드의 수가 많아지면 (필자는 보통 4개 이상이 되면 많게 느껴지는 것 같다) 적절한 대응방안에 대해 고민하게 된다. 정적 팩토리 메서드의 경우도 마찬가지이다. 점층적 생성자 패턴 (Telescoping Constructor Pattern) 생성자에 필요한 인자가 많아질 때, 개발자들은 일반적으로 '점층적 생성자 패턴' 을 사용한다. 단순히 생성자에 필요한 매개변수의 여러가지 조합으로 생성자의 입력 파라미터를 구성하는 구현방법이다. public class Member { private Long memberId; private String name; privat..
- Total
- Today
- Yesterday