Python 抽象工厂方法
来源:互联网 发布:路由器测试软件 编辑:程序博客网 时间:2024/06/06 05:57
import abcclass AbstractEnemyFactory( object ): __metaclass__ = abc.ABCMeta @abc.abstractmethod def createNinja( self, name ): pass @abc.abstractmethod def createSwordsman( self, name ): passclass LowLevelEnemyFactory( AbstractEnemyFactory ): def createNinja( self, name ): return LowLevelEnemyNinja( name = name ) def createSwordsman( self, name ): return LowLevelEnemySwordsman( name = name )class HighLevelEnemyFactory( AbstractEnemyFactory ): def createNinja( self, name ): return HighLevelEnemyNinja( name ) def createSwordsman( self, name ): return HighLevelEnemySwordsman( name )class EnemyNinja( object ): __metaclass__ = abc.ABCMeta @abc.abstractmethod def ninjutsu_attack( self ): passclass LowLevelEnemyNinja( EnemyNinja ): def __init__( self, name = 'LowLevelEnemyNinja' ): self._name = name self._chakra = 100 self._attack_power = 5 self._speed = 10 def ninjutsu_attack( self ): print 'Ninja use ninjutsu.' print '[%s]: my chakra is %s and the power of attack is %s'\ %( self._name, self._chakra, self._attack_power )class HighLevelEnemyNinja( EnemyNinja ): def __init__( self, name = 'HighLevelEnemyNinja' ): self._name = name self._chakra = 300 self._attack_power = 15 self._speed = 20 def ninjutsu_attack( self ): print 'Ninja use ninjutsu.' print '[%s]: my chakra is %s and the power of attack is %s'\ %( self._name, self._chakra, self._attack_power ) def special_effect( self ): print '[%s]: special effect!'%( self._name )class EnemySwordsman( object ): __metaclass__ = abc.ABCMeta @abc.abstractmethod def swords_attack( self ): passclass LowLevelEnemySwordsman( EnemySwordsman ): def __init__( self, name = 'LowLevelEnemySwordsman' ): self._name = name self._blood = 100 self._attack_power = 5 self._speed = 10 def swords_attack( self ): print 'Swordsman use swords.' print '[%s]: my blood is %s and the power of attack is %s'\ %( self._name, self._blood, self._attack_power ) class HighLevelEnemySwordsman( EnemySwordsman ): def __init__( self, name = 'HighLevelEnemySwordsman' ): self._name = name self._blood = 300 self._attack_power = 30 self._speed = 30 def swords_attack( self ): print 'Swordsman use swords.' print '[%s]: my blood is %s and the power of attack is %s'\ %( self._name, self._blood, self._attack_power ) def special_effect( self ): print '[%s]: special effect!'%( self._name )if __name__ == '__main__': h = HighLevelEnemyFactory() ninja = h.createNinja( name = 'Scheme' ) ninja.ninjutsu_attack() ninja.special_effect() swordsman = h.createSwordsman( name = 'Lambda' ) swordsman.swords_attack() swordsman.special_effect()
0 0
- Python 抽象工厂方法
- 抽象工厂 工厂方法
- Python抽象工厂模式
- 工厂方法 AND 抽象工厂
- 工厂方法,抽象工厂模式
- 工厂方法与抽象工厂
- 工厂方法和抽象工厂
- 工厂方法和抽象工厂
- 工厂方法之抽象工厂
- 工厂方法和抽象工厂
- 工厂方法VS抽象工厂
- 工厂方法和抽象工厂
- 工厂方法 VS 抽象工厂
- 工厂方法PK抽象工厂
- 工厂方法与抽象工厂
- 抽象工厂方法
- 抽象工厂方法
- 抽象的工厂方法
- Windows程序设计第三章总结
- POJ 1753 Flip Game(bfs枚举+递推)
- MediaExtractor
- PHP断点续传
- IOS开发NSDateFormatter格式详细列表一览
- Python 抽象工厂方法
- cocos2d-x 截图的方法
- 测试多线程下载的java类
- vs2010调试崩溃 reflector
- __proto__和prototype的一些发现
- 代码面试最常用的10大算法
- skia库显示中文的问题
- 配置文件读取和写入类
- jsonc的基本使用