【发布时间】:2013-10-21 18:01:25
【问题描述】:
我正在尝试使我的程序可扩展。这是一款可以玩多种游戏的通用纸牌游戏。
我有一个通用服务器,我们称之为类GenericServer。它导入 Cards、Players、Containers 等类。
我还有一个特定于游戏的服务器类,它是GenericServer 的子类,我们称之为MagicServer。
我想做的是让MagicServer 加载由GenericServer 导入的类的游戏特定版本。
class GenericServer(object):
# imports Cards(object), Players(object), Containers(object)
class MagicServer(GenericServer):
# imports MagicCards(Cards), MagicPlayers(Players), MagicContainers(Containers)
计划是拥有多个游戏专用服务器,它们都作为GenericServer 的子类,但也有自己的Cards、Players、Containers 等版本。我考虑过单独拆分服务器,但由于它们共享很多相同的代码,我想从GenericServer 继承它们。
关于如何解决这个问题的任何建议?
【问题讨论】:
-
你能澄清你的问题吗?你已经很好地描述了你的设置,但我对你试图解决的问题的确切性质有点不确定。您是否试图减少代码重复?自动让
MagicCards、MagicPlayers等自动继承相应的子类?还有什么? -
@Michael0x2a 在我看来OP想保证FooServer只能使用FooCards、FooPlayers、FooContainers等,同时保证BarServer只能使用BarCards、BarPlayers、BarContainers,等等
-
@EduardoLeón 是的,这就是我想要做的。
标签: python class subclass superclass