Здравствуйте. Разбирался с паттерном абстрактная фабрика, попробовал написать свою фабрику, суть в том что есть некая игра rpg и на каждом уровне может быть 2 моба и один бос, правильно ли я это реализовал?
class LevelFactory(metaclass=abc.ABCMeta):
@abc.abstractmethod
def get_mob_1(self):
pass
@abc.abstractmethod
def get_mob_2(self):
pass
@abc.abstractmethod
def get_boss(self):
pass
class Mob(object):
def __init__(self, hp, damage):
self.__hp = hp
self.__damage = damage
def __str__(self):
return 'hp: {}, damage: {}'.format(self.__hp, self.__damage)
class Boss(object):
def __init__(self, hp, damage, super_kick):
self.hp = hp
self.damage = damage
self.super_kick = super_kick
def __str__(self):
return 'The boss. Damage: {}, hp: {}, super kick: {}'.format(self.damage, self.hp, self.super_kick)
class Level1Factory(LevelFactory):
def get_boss(self):
return Boss(300, 43, 'lightning')
def get_mob_1(self):
return Mob(45, 10)
def get_mob_2(self):
return Mob(60, 15)
class Level2Factory(LevelFactory):
def get_boss(self):
return Boss(590, 89, 'fire')
def get_mob_1(self):
return Mob(83, 29)
def get_mob_2(self):
return Mob(113, 45)