팩토리 메소드 패턴

개체를 만들기 위한 인터페이스를 정의하되 인스턴스화할 클래스는 하위 클래스에서 결정하도록 합니다. Factory Method를 사용하면 클래스가 인스턴스화를 하위 클래스로 연기할 수 있습니다.

참가자들


  • 제품: 팩토리 메서드가 생성하는 개체의 인터페이스를 정의합니다.
  • ConcreteProduct: 제품 인터페이스를 구현합니다
  • .
  • 작성자: Product 유형의 객체를 반환하는 팩토리 메서드를 선언합니다. 작성자는 기본 ConcreteProduct 개체를 반환하는 팩터리 메서드의 기본 구현을 정의할 수도 있습니다. Product 개체를 생성하기 위해 팩토리 메서드를 호출할 수 있습니다.
  • ConcreteCreator: ConcreteProduct의 인스턴스를 반환하도록 팩토리 메서드를 재정의합니다.

  • 암호



    public class Main {
    
        public static void main(String[] args) {
            Creator[] creators = new Creator[2];
    
            creators[0] = new ConcreteCreatorA();
            creators[1] = new ConcreteCreatorB();
    
            for (Creator creator : creators) {
                Product product = creator.factoryMethod();
                System.out.println("Created " + product.getClass().getSimpleName());
            }
    
        }
    }
    
    public interface Product {
    
    }
    
    public class ConcreteProductA implements Product {
    
    }
    
    public class ConcreteProductB implements Product {
    
    }
    
    public interface Creator {
    
        Product factoryMethod();
    }
    
    public class ConcreteCreatorA implements Creator {
    
        @Override
        public Product factoryMethod() {
            return new ConcreteProductA();
        }
    }
    
    public class ConcreteCreatorB implements Creator {
    
        @Override
        public Product factoryMethod() {
            return new ConcreteProductB();
        }
    }
    

    산출



    Created ConcreteProductA
    Created ConcreteProductB
    




    eidherjulian61 / 디자인 패턴






    좋은 웹페이지 즐겨찾기