【发布时间】:2009-01-23 20:10:03
【问题描述】:
我正在寻找类似于Proxy pattern 或Dynamic Proxy Classes 的东西,只是我不想在实际对象上调用方法调用之前拦截它们,而是我想拦截属性正在改变。我希望代理能够表示具有不同属性集的多个对象。 the Proxy class in Action Script 3 之类的就可以了。
一般来说,这是我想要实现的目标:
我有一个线程运行一个对象,该对象管理由程序中其他线程移交的值列表(数字、字符串、对象),因此该类可以负责在磁盘上为检查点应用程序的目的。这个持久化对象管理一个“脏”标志,表示自上一个检查点以来值列表是否已更改,并且需要在它忙于将其写入磁盘时锁定该列表。
持久化器和其他组件通过通用名称识别特定项目,因此在从崩溃中恢复时,其他组件可以首先检查持久化器是否保存了最新的副本,并从中断处继续工作。
在正常操作期间,为了使用他们移交给持久化器的对象,我希望他们接收对代理对象的引用,该代理对象看起来好像是原始对象,但每当他们更改某个值时,持久化者会注意到并采取相应的行动,例如在实际设置实际值之前将项目或列表标记为脏。
编辑:或者,Java 中是否存在通用设置器(如 PHP 5 中的),即如果属性不存在则调用的方法?或者是否有一种类型的对象可以在运行时添加属性?
【问题讨论】:
标签: java design-patterns proxy-classes