TempleteMethod
Pythonでデザインパターンを適用してみました。
まず、テンプレートとなる基底クラス。
「monster.py」
class Monster: power = 0 hp = 0 name = "dummy" def attack(self): print self.name, "の攻撃" return self.power def damage(self, param): print self.name, "は", param, "のダメージを受けた" self.hp -= param return self.isDead() def isDead(self): if(self.hp < 1): print self.name, "は死んでしまった" return True return False def escape(self): print self.name, "は逃げ出した"
これを継承したスライムクラス。
「slime.py」
from monster import Monster class Slime(Monster): power = 2 hp = 5 name = "スライム"
もう一つ継承したのがスライムベスクラス。
「slimebesu.py」
from monster import Monster class Slimebesu(Monster): name = "スライムベス" hp = 10 power = 3
最後にモンスターを動かすドライバ。
from slime import Slime from slimebesu import Slimebesu enemy1 = Slime() enemy2 = Slimebesu() while True: if(enemy2.damage(enemy1.attack())): break if(enemy1.damage(enemy2.attack())): break
…と、書いた後にこれはTempleteMethodでないことに気がつきました…。
抽象メソッドがないですし…。