Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
design_pattern:abstract_factory_pattern [2017/10/28 16:32] – 작성 ledyxdesign_pattern:abstract_factory_pattern [2021/02/07 03:24] (current) – [Abstract Factory Pattern] ledyx
Line 3: Line 3:
   * 부품의 구체적인 구현에는 주목하지 않고, **인터페이스(API)에 주목**.   * 부품의 구체적인 구현에는 주목하지 않고, **인터페이스(API)에 주목**.
   * **추상적인 공장**(Abstract Factory)에서 **추상적인 부품**을 조립하고 **추상적인 제품**을 완성한다.   * **추상적인 공장**(Abstract Factory)에서 **추상적인 부품**을 조립하고 **추상적인 제품**을 완성한다.
 +    * 많은 수의 연관된 하위 클래스를 특정 그룹으로 묶어 한번에 교체.\\ ex) 특정 라이브러리 배포시 OS별로 지원하는 기능이 다를 때, OS별 기능 변경을 통합적으로 변경.
  
-{{tag>Architecture Modeling DesignPattern Creational}}+{{tag>Architecture Modeling Design_Pattern Creational}}
  
 = Factory = = Factory =
Line 387: Line 388:
  
 = Client = = Client =
-<sxh java>+  * <fc red>Client는 구체적인 부품, 제품, 공장에 대해 모른다!</fc> 
 +    * API만 이용! 말그대로 <fc red>추상적인 공장(Abstract Factory)에서 추상적인 부품을 조립하고 추상적인 제품을 완성한다.</fc> 
 + 
 +<sxh java ; highlight: [13]>
 import factory.Factory; import factory.Factory;
 import factory.LinkItem; import factory.LinkItem;
Line 428: Line 432:
   
   
- Page page = factory.createPage(className, "By xeyez");+ Page page = factory.createPage(className, "By ledyx");
  page.add(trary_community);  page.add(trary_community);
  page.add(tray_searchEngine);  page.add(tray_searchEngine);
Line 464: Line 468:
 </li></ul> </li></ul>
 </li></ul> </li></ul>
-<hr><footer>By xeyez</footer></body>+<hr><footer>By ledyx</footer></body>
 </html> </html>
 </sxh> </sxh>
  
-{{:design_pattern:abstract_factory_pattern1.jpg|}}+
  
  
Line 512: Line 516:
 <br> <br>
 </div> </div>
-<hr><footer>By xeyez</footer></body>+<hr><footer>By ledyx</footer></body>
 </html> </html>
 </sxh> </sxh>
- 
-{{:design_pattern:abstract_factory_pattern2.jpg|}} 
design_pattern/abstract_factory_pattern.1509204770.txt.gz · Last modified: 2021/02/07 03:15 (external edit)