我最近一直在浏览很多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() {
第二个问题:
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的观察者模式实现,通过将这个新对象的信息发送给观察者(或与此非常相似的东西)自动通知观察者.它是否正确?