私はJavaでいくつかの「簡単なこと」をやろうとしてきましたが、それはjavascriptでは次のようになります:
// Main class
var model = new Model();
this.callback = function(e){/* do something */}
model.addListener("change", callback);
Javaでこれまでに見つけたのは、java.util.Observerから派生したメインクラスとjava.util.Observableから派生したモデルを作成することです。次に、モデルがイベントをディスパッチするときに、Main クラスの update メソッドを呼び出します。私は本当に醜く、エレガントではないと感じました。これをどのように扱うことができるかさえ考えられません。
このようにする方法について受け入れられるチュートリアルが見つからないため、ここで私を助けるためのいくつかのライブラリなど、よりクリーンで柔軟な方法はありますか?
どうもありがとう
これまでに管理してきたことは、単純なイベントのためだけに「空の」クラスを作成するよりもはるかに気に入っています (ただし、少なくとも私にとってはまだ良くありません)。
private ArrayList __items;
public void addListener(Method method, Object object){
this.__listeners.add(new Object[] {method, object});
}
public void dispatch(){
int i = this.__listeners.size();
Method method;
Object context;
while(i>0){
i--;
method = (Method)(this.__listeners.get(i))[0];
context = (Object)(this.__listeners.get(i))[1];
try{
method.invoke(context);
}catch(java.lang.reflect.InvocationTargetException e){
}catch(java.lang.IllegalAccessException e){
}
}
}
次に、次のように使用します。
Gifts gifts = prendastotty.PrendasTotty.getMain().getLoggedUserGifts();
Class[] parameterTypes = new Class[0];
try{
Method m = Home.class.getMethod("__updateTable", parameterTypes);
gifts.addListener(m, this);
}catch(NoSuchMethodException e){
}
これは漏れやすい/アンチパターン/バグですか?