首页 > 代码库 > Python 抽象工厂方法
Python 抽象工厂方法
有没有好的python UML建模工具?求推荐,除eclipse的插件(因为不喜欢用eclipse)。pyNsource用的不是很好,pyUt不全。有没StarUML上的python插件?
import abc class AbstractEnemyFactory( object ): __metaclass__ = abc.ABCMeta @abc.abstractmethod def createNinja( self ): pass @abc.abstractmethod def createSwordsman( self ): pass class LowLevelEnemyFactory( AbstractEnemyFactory ): def createNinja( self ): return LowLevelEnemyNinja() def createSwordsman( self ): return LowLevelEnemySwordsman() class HighLevelEnemyFactory( AbstractEnemyFactory ): def createNinja( self ): return HighLevelEnemyNinja() def createSwordsman( self ): return HighLevelEnemySwordsman() class EnemyNinja( object ): __metaclass__ = abc.ABCMeta @abc.abstractmethod def ninjutsu_attack( self ): pass class LowLevelEnemyNinja( EnemyNinja ): def __init__( self ): self._name = 'LowLevelEnemyNinja' 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 ): self._name = 'EnemyNinja' 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 ): pass class LowLevelEnemySwordsman( EnemySwordsman ): def __init__( self ): self._name = 'LowLevelEnemySwordsman' 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 ): self._name = 'HighLevelEnemySwordsman' 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!' if __name__ == '__main__': h = HighLevelEnemyFactory() h.createNinja().ninjutsu_attack() h.createNinja().special_effect() h.createSwordsman().swords_attack()
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。