我对我应该采取的正确方法感到困惑 我正在创造一种游戏,在这个游戏中主角有配件。
所以我在想一个名为Item的抽象类。继承自Item也是抽象类,如眼镜,衬衫等...... 我认为它应该是抽象的原因是我从不创造眼镜,例如,我创建了一个"绿色阴影"的实例。绿色阴影也是一个类,我认为它应该从眼镜继承。 我正在考虑将Item设为抽象类,而Glass也是一个抽象类,但他们有一个工厂方法可以生成眼镜类型(绿色阴影,蓝色阴影等)。
每件物品都有价值物品(基本或罕见)。 我已经开始写一些东西,但我对实现细节感到困惑。
档案:
from enum import Enum
from abc import ABCMeta, abstractmethod
class Worth(Enum):
BASIC = 0
RARE = 1
class Item(object):
__metaclas__ = ABCMeta
def __init__(self, worth):
self.worth = worth
@property
@abstractmethod
def type_factory(self,type):
pass
眼镜和眼镜的例子:
from abc import ABCMeta, abstractmethod
import importlib
Enums = importlib.import_module('Enums')
Item = importlib.import_module('Item')
class Glasses(Item):
__metaclas__ = ABCMeta
def __init__(self,worth,type):
super().__init__(worth)
# self.type = self.type_factory()
@property
@abstractmethod
def type_factory(self,type):
if type == Enums.GlassesType.BLACK_SHADES:
return BlackShades()
# so on..
class BlackShades(Glasses):
def __init__(self,worth):
super().__init__(worth)
最好的方法是什么?我应该使用一个更好的工厂例子吗?也许最好使用类型类创建?
澄清一下:我并不只是想改进这段代码。我不介意使用正确的方法从头开始实现它,由于我缺乏Python经验,我不确定它是什么。
由于