我正在編寫一個用於繪製窗口小部件/菜單/控件等的應用程序來創建應用程序模型。每個屏幕都表示爲小部件的集合,並且每個小部件都是簡單的類,例如如何爲窗口小部件解耦模型/視圖
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