# 原创作品,转载请注明出处,谢谢!@杨福星
(http://blog.csdn.net/luckystar92/article/details/52176737)
*前言:
最近在学习抽象工厂设计模式,网上也查询了不少资料,本文是自己学习中的一点理解,以便后期回顾!好记性不如烂笔头!…^_ ^
概念:
抽象工程设计模式——“
是指当有多个抽象角色时,使用的一种工厂模式。抽象工厂模式可以向客户端提供一个接口,使客户端在不必指定产品的具体的情况下,创建多个产品族中的产品对象。根据里氏替换原则,任何接受父类型的地方,都应当能够接受子类型。因此,实际上系统所需要的,仅仅是类型与这些抽象产品角色相同的一些实例,而不是这些抽象产品的实例。换言之,也就是这些抽象产品的具体子类的实例。工厂类负责创建抽象产品的具体子类的实例。 ”(摘自百度百科)
设计模式学习网站【推荐】
[http://www.runoob.com/design-pattern/abstract-factory-pattern.html]
在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。
*注:个人理解:
一、实例:水果和蔬菜
*需求:生产北方水果、南方水果、北方蔬菜、南方蔬菜
二、实例:CPU和显卡
*需求:电脑必备:CPU和显卡;CPU和显卡又分为Intel产的CPU、显卡,AMD产的CPU、显卡。
三、实例:法师和战士
*需求:
英雄联盟一战队组建,需要考虑到物攻与法攻都有!可以是男法师、男战士;女法师、女战士;当然也可混合。
故应用抽象工厂模式:创造战士与法师
1、UML关系图:
2、编程实现
*英雄类:
英雄:Hero.java
pu