WEB开发网
开发学院软件开发Python Python设计模式系列之四: 创建型Abstract Factory... 阅读

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

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:Python 设计模式 系列

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接