[ nesha_ @ 31.08.2010. 15:16 ] @
Dakle, ovo mi je problem:
ako u interface-u imam ovako definisanu funkciju public abstract void Saberi(Object p1);
a imam i 2 podklase KPolinom i MPolinom koji je implementiraju, kako da u svakoj klasi napravim da ovaj objekat p1 bude klase KPolinom odnosno MPolinom?
[ Java Beograd @ 31.08.2010. 15:33 ] @
u MPolinom:

public void saberi(Object p1) {
MPolinom mPol = (MPolinom)p1;
....
....
}


u KPolinom:

public void saberi(Object p1) {
KPolinom kPol = (KPolinom)p1;
....
....
}


ALI: ovde je nešto jako loše u objektnom dizajnu. Čim ti moraš da radiš eksplicitni kasting u implementaciji metoda interfejsa, tu nešto ne štima

[ nesha_ @ 31.08.2010. 16:32 ] @
takav je zadatak.. moram da imam funkciju koja sabira dva polinoma i vraca polinom, i da je iskoristim u obe funkcije. Ako znas bolji nacin kako moze to da se uradi, reci :).
[ Dejan Lozanovic @ 31.08.2010. 19:20 ] @
Hmm a zar nije malo logicnije da je tu za argument saberi neki polinom kao interface, pa u samom interface-u da imas neke metode kojima pristupas elementima polinoma.
[ cume @ 01.09.2010. 00:42 ] @
Slazem se sa Dejanom, definitivno ti treba interfejs IPolinom. Baj d vej svaki metod deklarisan u interfejsu je implicitno apstraktan (i javan) pa nema potrebe da pises abstract u potpisu.
[ nesha_ @ 01.09.2010. 17:22 ] @
interfejs IPolinom? ne kontam bas najbolje sta hocete da kazete, jel mozes neki primer da napises?
@Dejan .. Ako sam dobro razumeo, mislis da umesto tipa object bude tip polinom? I da, naglaseno je da ne smemo druge metode da imamo u interfejsu, ali u svakom slucaju ako mozes napisi kako si mislio da treba to da izgleda posto me zanima.
[ serbolicious @ 01.09.2010. 21:26 ] @
Code:


public interface Polinom {
    public void saberi(Polinom p);
}

public class MPolinom implements Polinom {
   public void saberi(Polinom p){
     // ...
   }
}

public class KPolinom implements Polinom {
  public void saberi(Polinom p){
    // ...
  }
}

[ IDE @ 02.09.2010. 12:36 ] @
Citat:

interfejs IPolinom? ne kontam bas najbolje sta hocete da kazete, jel mozes neki primer da napises?
@Dejan .. Ako sam dobro razumeo, mislis da umesto tipa object bude tip polinom? I da, naglaseno je da ne smemo druge metode da imamo u interfejsu, ali u svakom slucaju ako mozes napisi kako si mislio da treba to da izgleda posto me zanima.


Preporucujem da procitas neku knjigu o principima dobrog dizajna u objekto-orijentisanim jezicima.

Princip programiranja ka interfejsima a ne implementaciji je jedan od glavnih i sjajnih principa.
Jako je bitno unijeti sto veci stepen apstrakcije u tvoj kod, ako zelis da ga kasnije lako prosirujes i odrzavas....


Preporucujem knjigu "Objekto-orijentisana analiza i dizajn" iz edicije "Head first". Sjaaajna knjiga.

[ nesha_ @ 03.09.2010. 16:04 ] @
@serbolicious.. tnx
Sto se tice knjige, cim uhvatim malo vremena, hvala na preporuci.