자바에서 클래스 내부에 정의된 메서드 중 이름이 클래스 이름과 동일하고 반환 타입이 없는 메서드를 생성자라고 합니다.
생성자는 new 키워드를 사용하여 호출하며, 객체를 생성하는 과정에서 초기화 작업을 수행합니다.
생성자는 다양한 매개변수를 받을 수 있으며, 오버로딩을 통해 여러 개의 생성자를 정의할 수 있습니다.
주로 객체의 상태를 설정하고 초기화하는 역할을 합니다.
예시:
public class MyClass {
private int value;
// 매개변수가 없는 기본 생성자
public MyClass() {
this.value = 0;
}
// 매개변수를 받는 생성자
public MyClass(int value) {
this.value = value;
}
// ...
}
일반적으로 팩토리 메서드 패턴이나 추상 팩토리 패턴과 관련된 용어로 사용됩니다.
Producer는 객체 생성에 대한 로직을 캡슐화하고, 클라이언트 코드가 직접 객체를 생성하는 것을 추상화합니다.
Producer는 일반적으로 인터페이스를 통해 정의되며, 다양한 구현체를 통해 객체를 생성할 수 있습니다.
객체 생성 로직의 변경이나 유연한 확장이 필요한 경우에 유용하게 사용됩니다.
예시:
public interface Product {
void doSomething();
}
public class ConcreteProduct implements Product {
@Override
public void doSomething() {
// 구체적인 동작 구현
}
}
public class ProductProducer {
public static Product createProduct() {
// 객체 생성 로직
return new ConcreteProduct();
}
}
위의 예시에서 ProductProducer는 createProduct() 메서드를 통해 Product 인터페이스를 구현한 ConcreteProduct 객체를 생성하고 반환합니다.
이렇게 Producer를 사용하면 클라이언트 코드에서는 구체적인 객체 생성 로직을 알 필요 없이 Product 인터페이스를 통해 객체를 사용할 수 있습니다.