我正在设计一个 Python 应用程序,但我无法弄清楚如何设置我想要的首选编码接口。(第一个实现没有 GUI。)
我希望用户能够执行设计 1 中的操作,但目前已将其实现为设计 2:
#
# Design 1
#
import myApp.core as myApp
myApp.new()
element = myApp.createElement()
element.rename("foo")
print element.name()
path = "C:/foo.txt"
myApp.save(path)
.
#
# Design 2
#
import myApp.core as myApp
scene = myApp.new()
element = scene.createElement()
element.rename("foo")
print element.name()
path = "C:/foo.txt"
scene.save(path)
根据我作为一名使用 Autodesk Maya 的艺术家的经验,我熟悉在设计 1 中这样的设置中工作,感觉非常合乎逻辑。感觉不像是在代表应用程序的单例类上运行方法。相反,感觉就像您始终在应用程序中。
对于设计 1,我们可以使用“from myApp.core import *”来轻松访问所有命令。对于设计二,我要么需要一个包含作为方法的函数的单例类,要么需要将全局应用程序“提供”到每个函数中。
为了让设计 1 一样工作,我认为它具有全局变量或跟踪应用程序状态的东西,因此函数知道在什么“场景”上执行它们的操作。然而,到目前为止,我已经设法在不使用此类设置的情况下生活,我不知道什么是最好的方法。
如果有一个很好的理由不像设计 1 那样做,请告诉我,我会做出相应的改变。作为任何界面,它应该是高效且非常易于使用的。