Design Pattern 3

빌더 (Builder)

빌더 패턴은 객체를 생성할 때 복잡한 초기화 과정을 단순화하고 가독성을 향상 객체의 생성과 객체의 구성을 분리하여 객체를 생성하는 과정을 보다 유연하게 만들어줌 객체에 많은 속성이 존재하고 이를 설정하는 것이 복잡한 경우에 사용 복잡한 객체의 생성을 단계적으로 진행 클라이언트 코드에서는 객체의 구성 단계를 명확하게 파악하고 원하는 속성만 설정 // Person 클래스 public class Person { private String firstName; private String lastName; private int age; private String address; private Person() {} // 생성자는 private로 숨겨둠 public static class Builder { privat..

팩토리 (Factory)

객체 생성을 처리하기 위한 디자인 패턴 중 하나로, 객체를 생성하는 코드를 캡슐화하고 클라이언트 코드로부터 객체 생성 로직을 분리하는데 사용 객체 생성을 추상화하며, 클라이언트는 어떤 구체적인 클래스의 인스턴스를 생성하는지에 대한 세부 정보를 알 필요가 없음 Factory (공장) 인터페이스 또는 추상 클래스: 객체를 생성하기 위한 메서드를 정의 Concrete Factories (구체적인 공장 클래스): Factory 인터페이스를 구현하여 객체를 실제로 생성하는 클래스 Product (제품) 인터페이스 또는 추상 클래스: 공장이 생성할 객체의 유형을 정의 Concrete Products (구체적인 제품 클래스): Product 인터페이스를 구현하여 실제 객체를 나타냄 // 1. Product 인터페이스..

싱글톤 (Singleton)

특정 클래스의 인스턴스가 오직 하나만 생성되고, 이후에는 그 인스턴스를 공유하여 사용하는 패턴 객체 생성 및 리소스 소비를 최적화하고, 전역적으로 접근 가능한 단일 지점을 제공 단일 인스턴스 전역적 접근 지연 로딩 public class Singleton { // 정적 변수로 인스턴스를 저장 private static Singleton instance; // 생성자를 private으로 선언하여 외부에서 인스턴스 생성 불가능하게 함 private Singleton() { } // 인스턴스 반환 메서드 public static Singleton getInstance() { // 인스턴스가 없을 경우에만 생성 if (instance == null) { instance = new Singleton(); } re..