7

最近、多くの OOP デザイン パターンに目を通しましたが、今まで見たことのない奇妙なものに出くわしました。

Button button =  new Button(shell, SWT.PUSH);
button.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
    // Handle the selection event
    System.out.println("Called!");
    }
}); 

具体的には、これは何をしますか (たとえば、「new」キーワードはここで何をしますか?):

    button.addSelectionListener(new SelectionAdapter() {

2 番目の質問:

private void notifyListeners(Object object, String property, String oldValue, String newValue) {
   for (PropertyChangeListener name : listener) {
      name.propertyChange(new PropertyChangeEvent(this, "firstName", oldValue, newValue));
   }
}

これは、オブザーバー デザイン パターンの抜粋です。私の新しい理解では、name.propertyChange(...) は PropertyChangeEvent のオブジェクトを作成し、Java のオブザーバー パターンの実装を通じて、この新しいオブジェクトの情報をオブザーバー (またはこれに非常に類似したもの) に送信することで、オブザーバーに自動的に通知します。これは正しいです?

4

3 に答える 3

0

new キーワードは匿名オブジェクトを作成しています。

これは、一度しか使用しないインスタンスを作成する場合に便利です。

于 2013-08-01T01:58:38.423 に答える