JAVAイベントとオブザーバーを学習するためだけに、私の小さなIRCフレームワークの設計に関して質問があります..
最初の質問: http://en.wikipedia.org/wiki/Observer_pattern#Critics
オブザーバー パターンは、冗長すぎる、バグが多すぎる、副作用の促進、カプセル化、構成可能性、概念の分離、スケーラビリティ、均一性、抽象化、リソース管理、セマンティック ディスタンスなどのソフトウェア エンジニアリングの原則に違反していると批判されています[6]。 . 推奨されるアプローチは、オブザーバーを徐々に廃止し、リアクティブ プログラミングの抽象化を優先することです。
批判され、将来廃止される可能性がある場合、本番プログラムでオブザーバーパターンを使用する必要がありますか? java.util.observer は常に良い選択ですか?
2 番目の質問: 2 つのオブジェクトがあります。サーバーとチャネル
サーバー.java
public Server {
public Server () {
// Some stuff
channelList = new ArrayList<Channels>();
}
public Channel searchChannel(String channel) {
// Implements searching channel
}
public void parseMessage() {
if (someCondition1)
onEvent1();
elseif (someCondition2)
onEvent2();
}
public void onEvent1(String channel, String param) {
channel = searchChannel(channel);
channel.onEvent1(param);
}
public void onEvent2(String channel, String param) {
channel = searchChannel(channel);
channel.onEvent2(param);
}
}
** Channel.java**
public Channel {
public Channel(Server server) {
// Some stuff
this.server = server;
}
public void onEvent1(String channel, String param) {
// Stuff for Event1 fired from Server
server.responseAtEvent("blablabla");
}
public void onEvent2(String channel, String param) {
// Do stuff for Event2 from Server
server.responseAtEvent("blablabla");
}
この場合、チャネルにはすべてのメソッド public があり、それらは Server クラスから呼び出されます...イベント処理を管理するより良い方法はありますか? 私はObserverPatternで考えていますが、GUIのもの、つまりビジネスロジッククラスでより多く使用されていると思います..
乾杯
Observer に関してもう 1 つ聞きたいことがあります...なぜ多くの人が JDK Observer パターンを嫌い、あなたの実装を提案するのですか?
なぜ車輪を再発明するのですか?
私が見る再実装されたオブザーバーは、JDKの同じオブザーバーです...