Kirjoissa mitä olen nähnyt niin kaikki grafiikka on aina laitettu aina samaan luokkaan. Miten ootte tehneet ohjelmien kanssa joissa esim. tulostetaan näytölle suuri määrä grafiikkaa. Laitetaanko kaikki g.drawLine (jne.) -komennot samaan paint-metodiin vaikka kodia on paljon, vai tehdäänkö esim. monta luokkaa jotka kaikki perivät Canvaksesta joissa jokaisessa oma paint-metodi. Jos kaikki grafiikka pelissä on laitettu samaan luokkaan niin tarvitaan sinne yleensä myös paljon if- ja muita lauseta.
Sen Graphics-olion pystyy aivan hyvin välittämään mille tahansa muulle metodille, jolloin paint-metodiin jää jäljelle ainoastaan kasa muiden metodien kutsuja.
Esim.
public void paint(Graphics g) { for (int i = 0; i < objektit.length; ++i) { objektit[i].piirrä(g); } }
Tällöin muissa luokissa tarvitsee periyttää vain java.awt.Graphics (ja muut luokan tarvitsemat luokat) ja kaikki tarvittavat ehtolauseetkin voidaan testata tuolla piirrä-metodin sisällä.
Mitkä ovat hyvät/huonot puolet noissa kahdessa vaihtoehdossa?
o165321917 kirjoitti:
Mitkä ovat hyvät/huonot puolet noissa kahdessa vaihtoehdossa?
Jälkimmäisessä:
+ kukin olio vastaa omasta piirtämisestään
- jos demottava jotain metodia yms. niin raskas (ohjelmoitava ylimääräisiä luokkia jne.)
Ensimmäisessä:
+ edellisen miinus (ei tarvitse ylimääräisiä luokkia yksinkertaiseen esimerkkiin)
- kaikki muu
Aihe on jo aika vanha, joten et voi enää vastata siihen.