Python设计模式系列之四: 创建型Abstract Factory模式

豆豆网   技术应用频道   2007年03月30日    社区交流

本文详细介绍Python设计模式系列之四: 创建型Abstract Factory模式

  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

作者:肖文鹏    责编:豆豆技术应用

正在加载评论...