在Java中,只要对象的任何属性发生更改,对象就会触发事件的最优雅方式是什么?Java - 当对象的任何属性发生变化时触发事件
我的域模型有几个对象,如
class MyClass {
String id;
String name;
Collection<MyThing> mythings= new HashSet<MyThing>();
// more fields...
Date lastUpdated;
//constructor, getters and setters, etc
}
我需要LASTUPDATED设置为“今天”,只要任何属性(ID /名称/ mythings)的变化。
我宁愿一个解决方案,是不是JDO特有的,绝对不希望在数据存储区(在RDBMS等自动时间戳列)这个逻辑。
我可以把
this.lastUpdated = new Date();
在每一个二传手,或火灾在每一个二传手自定义事件,但是这是丑陋且容易出错。
有没有更优雅的解决方案?
FYI,这听起来完全像什么的Java bean是,你可能想看看他们。 – 2012-03-22 01:18:58
AOP需要一个接口,除非你打算做字节码增强。我通常不使用模型对象的接口。我不会为这个用例推荐AOP。 – duffymo 2012-03-22 12:11:18