2016-10-17 36 views
0

我有一些類的層次結構。我想實現這個層次結構中任何實例的延遲更新。換句話說,我們應該在唯一的情況下更新對象,我們將使用任何公共的對象方法。什麼是允許實現這種行爲的最佳設計模式?哪個設計模式允許執行延遲更新對象

這裏是這樣的情況下簡單的例子:

我有複雜的模型,該模型不能更新視圖(在性能的目的)。因此,視圖在訪問任何公共方法期間應自動更新自己

回答

2

我在解釋短語延期更新意味着延遲加載。在這種情況下,這聽起來像是在描述proxy pattern。代理是用來控制訪問到另一個對象或資源,並通過GoF的控制訪問對象提到的第一個原因,

...推遲其 創建和初始化的全部費用,直到我們實際上需要使用它。

換句話說,只有當實際調用其中一個公共方法時才能更新對象。

+0

是的,這是我的意思 – LmTinyToon

1

設計模式很少用於性能目的。相反,你打破了一個模式來獲得更好的表現。

要偵聽模型中的變化,請使用Observer。

要在調用方法時執行某些操作,請使用代理。

0

Model-view-viewmodel (MVVM)與@vz0發佈的內容有關。

在這種模式下,視圖觀察者視圖模型,並相應地自我更新,使您可以將GUI從數據表示中分離出來。

+0

但在我的情況下,模型無法通知有關其更改的視圖。這是我的架構的弱點 – LmTinyToon