Java en ik kunnen het goed met elkaar vinden, behalve als het aankomt op het ontwerpen van een nette informatieflow binnen wat grotere applicaties. Een steeds terugkerend probleem is dat ik referenties naar Objecten nodig heb op plaatsen waar ik ze niet kan zien. Een klein fictief voorbeeld ter toelichting:
FRAME1 -> A -> B
-> SUBFRAME -> B
SUBFRAME wil hier data manipuleren binnen dezelfde B als de B die door A geinstantieerd is. Ik heb altijd de volgende aanpakken gebruikt om dit probleem te omzeilen:
1) klassevariabelen public maken
2) klassevariabelen en soms ook methoden static maken
3) referenties naar objecten het hele programma doorgooien
4) gebruik maken van IO
oplossingen waar aardig wat nadelen aan kleven. dus heb ik het volgende bedacht:
spreekt aardig voor zichzelf, een object vraagt om een instantie van een object en krijgt of de bestaande instantie of een nieuwe instantie.
ik kan er iets meer mee, maar zit nog steeds met het probleem dat ik nu niet meer dan één verschillende instantie van zo'n klasse kan hebben (dan loopt het registeridee de soep in).
aangezien ik zelf al meerdere malen met de handen in het haar heb gezeten om dit soort problemen netjes op te lossen, hoopte ik dat er onder jullie ook mensen zijn die hiermee hebben zitten klooien en wel een nette oplossing weten. ik heb het gevoel dat dit het 'net' niet is.
mijn dank is groot
FRAME1 -> A -> B
-> SUBFRAME -> B
SUBFRAME wil hier data manipuleren binnen dezelfde B als de B die door A geinstantieerd is. Ik heb altijd de volgende aanpakken gebruikt om dit probleem te omzeilen:
1) klassevariabelen public maken
2) klassevariabelen en soms ook methoden static maken
3) referenties naar objecten het hele programma doorgooien
4) gebruik maken van IO
oplossingen waar aardig wat nadelen aan kleven. dus heb ik het volgende bedacht:
Java:
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
| import java.util.Hashtable; public class Register { private static Hashtable instanceTable = new Hashtable(); public static void registerInstance(String name, Object obj) { instanceTable.put(name, obj); } public static Object getInstance(String name) { Object obj = instanceTable.get(name); if(obj != null) return obj; else { try { Class c = Class.forName(name); obj = c.newInstance(); registerInstance(name, obj); return obj; } catch (WillekeurigeException e) { return null; } } } } |
spreekt aardig voor zichzelf, een object vraagt om een instantie van een object en krijgt of de bestaande instantie of een nieuwe instantie.
ik kan er iets meer mee, maar zit nog steeds met het probleem dat ik nu niet meer dan één verschillende instantie van zo'n klasse kan hebben (dan loopt het registeridee de soep in).
aangezien ik zelf al meerdere malen met de handen in het haar heb gezeten om dit soort problemen netjes op te lossen, hoopte ik dat er onder jullie ook mensen zijn die hiermee hebben zitten klooien en wel een nette oplossing weten. ik heb het gevoel dat dit het 'net' niet is.
mijn dank is groot