Python设计模式系列之四: 创建型Abstract Factory模式
2007-03-30 12:56:31 来源:WEB开发网核心提示: WiseEnemyFactory 是 AbstractEnemyFactory 的另一个具体实现,它负责实例化 WiseSoldier 和 WiseMonster 对象,Python设计模式系列之四: 创建型Abstract Factory模式(5),其完整的代码如清单3所示,代码清单3:
WiseEnemyFactory 是 AbstractEnemyFactory 的另一个具体实现,它负责实例化 WiseSoldier 和 WiseMonster 对象,其完整的代码如清单3所示。
代码清单3:wiseenemyfactory.py
from wisesoldier import *
from wisemonster import *
from abstractenemyfactory import *
class WiseEnemyFactory(AbstractEnemyFactory):
""" 负责创建WiseSoldier和WiseMonster的具体工厂 """
# 创建WiseSoldier的具体方法
def createSoldier(self):
soldier = WiseSoldier()
return soldier
# 创建WiseMonster的具体方法
def createMonster(self):
monster = WiseMonster()
return monster
AbstractEnemyFactory 、 SillyEnemyFactory 和 WiseEnemyFactory 共同组成了抽象工厂模式中的工厂等级结构,其作用是为了更好地创建相应的 Soldier 和 Monster 产品对象。 Soldier 是游戏中所有士兵对象的抽象接口,其完整的代码如清单4所示。
代码清单4:soldier.py
class Soldier:
""" 所有士兵对象的抽象接口 """
# 获取速度的抽象方法
def getSpeed(self):
pass
# 获取武器的抽象方法
def getWeapon(self):
pass
SillySoldier 是 Soldier 的一个具体实现,它用来代表初等游戏级别中的士兵对象,其完整的代码如清5所示。
代码清单5:sillysoldier.py
from soldier import *
class SillySoldier(Soldier):
""" 初等级别中士兵对象的具体实现 """
# 构造函数
def __init__(self):
print "A SillySoldier is created."
self.speed = 10
self.weapon = "saber"
# 获取速度的具体实现
def getSpeed(self):
return self.speed
# 获取武器的具体实现
def getWeapon(self):
return self.weapon
更多精彩
赞助商链接