我正在编写一个用于绘制窗口小部件/菜单/控件等的应用程序来创建应用程序模型。每个屏幕都表示为小部件的集合,并且每个小部件都是简单的类,例如如何为窗口小部件解耦模型/视图
class Model(object):
def __init__(self):
self.widgets = []
class Widget(object):
def __init__(self):
self.x, self.y = 0, 0
self.w, self.h = 100,20
self.text = "Widget"
现在,用户可以在编辑器中编辑X,Y,W,H,它呈现的许多意见(的地方),渲染本身可能会改变W和H,因为我们想至少表明最合适的。 例如文本“窗口小部件”可能需要宽度不同的看法
200或205问:
所以问题渲染/视图本身modifes模型,如何避免这种情况?现在我有主视图和主模型,如果想渲染副本模型并渲染它,则可以使用任何其他视图,从而避免主模型中的更改。
这种方法很简单,代码仍然很简单,但需要一个不必要的模型副本,我想过很多方法来避免这种情况,但是所有这些方法都会使代码变得复杂,并且可能效率不高,因为无论如何,如果模型没有被复制,渲染时间 - 属性需要放置在某个地方,例如在每个窗口小部件的每个渲染器中。
我在python中实现它,但这与答案无关。
+1 3点的选择,但我认为所有这三个将复杂的代码,号码1本来很有前途,但我做的线程渲染也将意味着我可能需要x_drawn每个渲染器,这将事情进一步复杂化 – 2009-09-12 13:05:11