[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