Is er een guideline voor wanneer je een interne en wanneer een externe class gaat maken?
ps: uitleg over interne en externe klassen is niet nodig
ps: uitleg over interne en externe klassen is niet nodig
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
| public class SaveAction extends AbstractAction
public SaveAction(){
super(
"Save",
new ImageIcon(
DatabaseEditor.class.getClassLoader().getResource("com/jph/bla/Save.png")
)
);
m_multiDatabaseEditorModel.addPropertyChangeListener(
MultiDatabaseEditorModel.CURRENT_DATABASE,
new PropertyChangeListener(){
public void propertyChange(PropertyChangeEvent pce){
Database database = (Database)pce.getNewValue();
setEnabled(database!=null);
}
}
);
setEnabled(false);
}
public void actionPerformed(ActionEvent e){
save(false);
}
} |
Het is theoretisch denk ik niet zo interessant en ook niet echt geaccepteerd als een waardevolle toevoeging van een OO-taal (behalve dat het wellicht makkelijk is oid). Ik denk dat je het daarom niet terug ziet in boeken als 'refactoring' of 'design patterns'.Alarmnummer: Hmmm.. jammer dat er niet een echte guideline voor is.
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment
Inderdaad... anonieme inner-classes zuigen gewoonAlarmnummer: En ik heb er net even een paar anonieme innerclasses ingezet voor de oefening (heb ze nog niet eerder gebruikt). Maar vind eerlijk gezegd een losse klasse een stuk makkelijker.
Mwah, waarom? Ik vind het eerder vrij vreemd dat je bij final lokale variabelen kunt komen vanuit die anonieme inner-class...Als je een anonieme innerclass gaat vergelijken met de scope van een variable zit er meer logica in dan een normale innerclass.
Hum... dat denk ik toch niet... Als je echt netjes bezig bent moet je bijvoorbeeld je listeners afmelden. Daarvoor moet je een referentie naar je instantie bewaren.Je bent tenslotte alleen op dat punt geinteresseerd in die classe en verder niet meer en dat kan je niet met een losse innerclass naar voren brengen.
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment