古いノートの内容からメモ
Common beans event handlerパターン
Swingでリスナーをセットする際に、匿名クラスを使うことが多いが、小さいクラスが大量に生成されてしまう。クラスロード毎に4KBのヒープがとられる、遅くなる、等の問題がある。
JButton okButton = new JButton("OK"); okButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ev) { // OKボタンが押されたときの処理 } });
画面にたくさんのGUIパーツが散りばめられた場合、匿名クラスが大量に(数十〜数百)作成されることになります。ダイアログが数百あるアプリケーションを考えるとすごいことになりますね。
ActionListener okListener = (ActionListener)EventHandler.create( ActionListener.class, this, "okButtonClicked" ); okButton.addActionListener(okListener);
となるようです。
ToDo:サンプルコードを書いて実験してみる