[Java lista] egyszerű kérdés :)
Huj Tamás
hujtomi at gmail.com
2009. Aug. 16., V, 18:44:50 CEST
sziasztok!
van 3 osztályom:
osztA
osztB
osztC
az osztályok majdnem teljesen ugyanolyanok csak üzleti szempontok
miatt kellett különválasztani őket, de a tagváltozóik és a metódusaik
nagy része megegyezik.
és van egy Collectionom a példa kedvéért legyen egy lista.
van egy metódusom ami ilyen típusú listákat dolgoz fel, és csak olyan
metódusokat hív ami mind a 3 osztályban megvan, és most a feldolgozó
függvénynél gyakorlatilag meg kell háromszorozni a kódot mert a
megfelelő osztályra kell castolni. Valahogy így:
public void feldolgoz(List lista){
Iterator iterator = lista.iterator();
while(iterator.hasNext()){
Object o = iterator.next();
if(o instanceof osztA){
((osztA)o).metodus1()
} else if(o instanceof osztB){
((osztB)o).metodus1()
} else if(o instanceof osztC){
((osztC)o).metodus1()
}
}
}
Ha egy közös itnerfészt implementálnának az osztályok akkor nem
kellene a kódot megháromszorozni, és az jó lenne. De az a baj, hogy
ezeket az osztályokat egy keretrendszer generálja egy ant-os buildelés
során, és nem szabad belenyúlni a kódba, mert mindig úgyis
újragenerálódik.
Vajon meg lehetne oldani interfész nélkül ezt a problémát úgy hogy ne
kellejen egy csomó helyen megháromszorozni a kódot?
üdv,
Tomi
További információk a(z) Javalist levelezőlistáról