在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