我怎样才能扩展"正常" Python中带静态类的类?

时间:2015-08-31 00:48:51

标签: python class python-3.x inheritance static

我正在使用Python 3而我正在尝试重写我刚才写的图形库。现在,我有一个名为Scene的类,除了构造函数之外还有三个方法:logic(self)update(self)render(self)

logic(self)处理每个Scene的逻辑。它处理所有鼠标和键盘输入,并确定是否单击了按钮等等。

update(self)可以被认为是一种抽象方法。它的内容只是raise NotImplementedErrorupdate(self)每秒调用一定次数,并更新程序中正在发生的任何内容,但不会在屏幕上绘制任何内容。这是与帧率无关的更新。如果Pong是用这个图书馆制作的,球的位置会用这种方法更新。

render(self)实际更新了屏幕。这样,程序的速度不是由帧速率决定的。

我喜欢我Scene的当前实现。它现在非常干净,看起来非常直观。但是,我无法克服如何扩展Scene。假设我想为主菜单制作基本GUI的Scene。我希望只有一个主菜单Scene,因为我不认为每次重新创建另一个Scene是个好主意主菜单将被查看和使用。

我最初是通过使用静态类扩展Scene,但很快意识到它并不是真的可以做到这一点。 目前的范例只是用普通类扩展 Scene ,然后每次必须使用子类时重新创建并销毁它吗?例如,我应该只是在分别查看和离开时重新创建并销毁一个假设的MainMenu(Scene)对象?

1 个答案:

答案 0 :(得分:0)

实现GoF所指的策略模式,您可以根据当前状态动态调度到适当的逻辑。