2016-10-17 27 views
0

我有一些类的层次结构。我想实现这个层次结构中任何实例的延迟更新。换句话说,我们应该在唯一的情况下更新对象,我们将使用任何公共的对象方法。什么是允许实现这种行为的最佳设计模式?哪个设计模式允许执行延迟更新对象

这里是这样的情况下简单的例子:

我有复杂的模型,该模型不能更新视图(在性能的目的)。因此,视图在访问任何公共方法期间应自动更新自己

回答

2

我在解释短语延期更新意味着延迟加载。在这种情况下,这听起来像是在描述proxy pattern。代理是用来控制访问到另一个对象或资源,并通过GoF的控制访问对象提到的第一个原因,

...推迟其 创建和初始化的全部费用,直到我们实际上需要使用它。

换句话说,只有当实际调用其中一个公共方法时才能更新对象。

+0

是的,这是我的意思 – LmTinyToon

1

设计模式很少用于性能目的。相反,你打破了一个模式来获得更好的表现。

要侦听模型中的变化,请使用Observer。

要在调用方法时执行某些操作,请使用代理。

0

Model-view-viewmodel (MVVM)与@vz0发布的内容有关。

在这种模式下,视图观察者视图模型,并相应地自我更新,使您可以将GUI从数据表示中分离出来。

+0

但在我的情况下,模型无法通知有关其更改的视图。这是我的架构的弱点 – LmTinyToon