본문 바로가기
카테고리 없음

Factory Method pattern

by 최고영회 2013. 12. 21.
728x90
반응형
SMALL

Template Method pattern 는 상위 클래스에서 뼈대를 만들고, 하위 클래스에서 구체적인 처리의 내용을 만들었다.

이 패턴은 인스턴스 생성에 위 패턴을 적용한 것이다. 즉 인스턴스를 생성하는 곳을 template method pattern으로 구성한 것이

Factory Method pattern 이다.

 

예제 프로그램) IDCard 생성 공장

 

 public abstract class Product {

  public abstract void use();

}

 

public abstract class Factory {

  public final Product create(String owner){

    Product p = createProduct(owner);

    return p;
  }

  protected abstract Product createProduct(String owner);

  protected abstract void registerProduct(Product product);

} 

 

public class IDCard extends Product {

  private String owner;

  IDCard(String owner){

   System.out.println(owner + "의 카드를 만든다. ");

  }

  public void use(){

    System.out.println(owner + "의 카드를 사용한다.");

  }

  public String getOwner() {

    return owner;

  }

}

 

 

public class IDCardFactory extends Factory {

  private List owners = new ArrayList();

  protected Product createProduct(String owner){

    return new IDCard(owner);

  }

  protected void registerProduct(Product product){

    owners.add(((IDCard)product).getOwner());

  }

  public List getOwners(){

    return owners;

  }

} 

 

public class Main {

  public static void main(String[] args){

    Factory factory = new IDCardFactory();

    Product card1 = factory.create("홍길동");

    Product card2 = factory.create("이순신");

    Product card3 = factory.create("강감찬");

    card1.use();

    card2.use();

    card3.use();

  }

} 

 

728x90
반응형
LIST