現在、私は次の問題に直面しています:私たちはプロジェクトでいくつかのサードパーティのライブラリを使用しており、特定のタイプのリスナーの追加と削除 (取得ではありません!) をサポートするモデルがあります。そして問題は、リスナーを追加してから、インスタンスがない別の場所にリスナーを削除することです。解決策の1つはsingleton
、同じインスタンスを追加して削除できるようにすることでした(ただし、これは醜いです)。2つ目は以下でした。
class MyListener implements CoolThirdPartyModelListener{
...
@Override
public boolean equals(Object obj){
if (obj == null){
return false;
}
if(obj == this){
return true;
}
return obj instanceof MyListener;
}
}
そして、呼び出すだけでリスナーリストから削除します:
coolThirdPartyModelInstance.removeListener(new MyListener());
しかし、2番目のものには醜いequals()
方法があります:(そして、そのようにリスナーを削除するのはちょっと難しいと言われました.
そこで、これら 2 つのバリエーションについてあなたの意見をお聞きしたいと思います。おそらく (それは素晴らしいことです)、私が見つけたよりもクールなものを提案していただけないでしょうか。