Writing /volume1/Web/Public/dokuwiki/data/log/deprecated/2024-11-15.log failed
差分
このページの2つのバージョン間の差分を表示します。
次のリビジョン | 前のリビジョン | ||
study:java:design_pattern:factory [2008/08/16 05:06] – created banana | study:java:design_pattern:factory [2010/10/29 01:37] (現在) – banana | ||
---|---|---|---|
行 2: | 行 2: | ||
팩토리 메소드 패턴의 정의는 다음과 같습니다. | 팩토리 메소드 패턴의 정의는 다음과 같습니다. | ||
< | < | ||
- | 팩토리 메소드 패턴 - 팩토리 메소드 패턴에서는 객체를 생성하기 위한 인터페이스를 정의하는데, | + | 팩토리 메소드 패턴 - 팩토리 메소드 패턴에서는 객체를 생성하기 위한 인터페이스를 정의하는데, |
- | 서브 클래스에서 결정하게 만듭니다. 팩토리 메소드 패턴을 이용하면 클래스의 인스턴스를 만드는 일을 서브클래스에게 맡기는 것이죠. | + | 어떤 클래스의 인스턴스를 만들지는 서브 클래스에서 결정하게 만듭니다. 팩토리 메소드 패턴을 |
+ | 이용하면 클래스의 인스턴스를 만드는 일을 서브클래스에게 맡기는 것이죠. | ||
</ | </ | ||
行 13: | 行 14: | ||
위에 있는 정의에도 나와 있지만, 다른 개발자들이 " | 위에 있는 정의에도 나와 있지만, 다른 개발자들이 " | ||
- | {{: | + | {{: |
+ | |||
+ | {{keywords> | ||
+ | |||
+ | |||
+ | |||
+ | ===== An Example of Factory Method Pattern ===== | ||
+ | 팩토리 메소드 패턴의 예로 피자의 주문을 처리하는 피자가게를 팩토리 메소드 패턴을 이용해 구현해 보고자 합니다.\\ | ||
+ | 뉴욕풍 피자를 만드는 뉴욕피자가게와 시카고풍 피자를 만드는 시카고피자가게를 만들고자 합니다. \\ **%%PizzaStore%%**에서는 | ||
+ | 어떤 피자를 만들지는 모릅니다. 어떤 피자를 만들지는 순전히 뉴욕피자가게(**%%NYPizzaStore%%**)와 시카고피자가게(**%%ChicagoPizzaStore%%**)가 결정하게 됩니다. | ||
+ | {{: | ||
+ | |||
+ | |||
+ | |||
+ | ====== the Definition of Abstract Factory Pattern ====== | ||
+ | 팩토리 메소드 패턴의 형제인 추상 팩토리 패턴을 소개합니다. 정의는 다음과 같습니다. | ||
+ | < | ||
+ | 추상 팩토리 패턴 - 추상 팩토리 패턴에서는 인터페이스를 이용하여 서로 연관된, | ||
+ | 또는 의존하는 객체를 구상 클래스를 지정하지 않고도 생성할 수 있습니다. | ||
+ | </ | ||
+ | |||
+ | 추상 팩토리 패턴을 사용하면, | ||
+ | 이때, 실제로 어떤 제품이 생산되는지는 전혀 알 필요도 없습니다. 따라서 클라이언트와 팩토리에서 생산되는 제품을 분리시킬 수 있습니다.\\ 클래스 다이어 그램을 살펴봅시다. | ||
+ | |||
+ | {{: | ||
+ | |||
+ | |||
+ | |||
+ | ===== An Example of Abstract Factory Pattern ===== | ||
+ | 이제 마지막으로 추상 팩토리 패턴을 구현한 예를 살펴봅시다. \\ 위의 클래스 다이어 그램에서 %%Client%%에 해당되는 것이 **%%PizzaStore%%**의 예에서 나온 **%%NYPizzaStore%%**나 **%%ChicagoPizzaStore%%**에 해당됩니다. | ||
+ | |||
+ | {{: |