我有一些类的层次结构。我想实现此层次结构中任何实例的延迟更新。换句话说,我们应该在唯一的情况下更新对象,我们将使用任何公共方法的对象。允许实现此类行为的最佳设计模式是什么?
以下是此类案例的简单示例:
我有复杂的模型,无法更新视图(出于性能目的)。因此,视图应在访问其任何公共方法时自动更新
答案 0 :(得分:2)
我将短语延迟更新解释为延迟加载。在这种情况下,听起来你正在描述proxy pattern。代理用于控制对另一个对象或资源的访问,GoF提到的控制对象访问的第一个原因是,
...推迟其全部费用 创建和初始化,直到我们真正需要使用它。
换句话说,只有在实际调用其中一个公共方法时才能更新对象。
答案 1 :(得分:1)
设计模式很少用于性能目的。相反,你打破一种模式以获得更好的表现。
要监听模型中的更改,请使用Observer。
要在调用方法时执行某些操作,请使用代理。
答案 2 :(得分:1)
使用代理设计模式。它控制对原始对象的访问,允许您在请求进入原始对象之前或之后执行。 有关更多信息,您可以参考以下链接 https://refactoring.guru/design-patterns/proxy
答案 3 :(得分:0)
Model-view-viewmodel (MVVM)与@ vz0发布的内容有关。
在此模式中,视图观察视图模型,并相应地更新自身,允许您将GUI与数据表示分离。