[Java lista] Class szintu tulajdonsag kenyszeritese compile-time
sashee
gsashee at gmail.com
2009. Júl. 22., Sze, 20:59:17 CEST
Ok, akkor reszletesebben:
A jatekosoknak van penzuk, es vehetnek goblinokat. A goblinoknak van
aruk, es ez a goblinra mint fajra jellemzo(tehat minden goblin
ugyanannyiba kerul). A goblint csak akkor akarom peldanyositani, ha az
tenyleg letre is jott. A goblinnak van egy absztrakt ose, hogy kesobb
lehessen mas lenyeket is letrehozni.
Venni varosban lehet, ezert a varosnak keszitettem egy olyan metodust,
ami megkapja azt az osztalyt, amilyen lenyt szeretne venni a jatekos.
Ebben a metodusban szeretnem megcsinalni azt, hogy eloszor
leellenorzni az adott lenytipusnak az arat, megvizsgalja, hogy a
jatekosnak mennyi penze van, es ha van elegendo, akkor letrehoz egy uj
peldanyt az adott lenybol.
Ezt szeretnem minel elegansabban es a leheto legkevesebb plusszal
megirni, ezert gondoltam, hogy ha minden leny class-aban tarolom az
arara vonatkozo adatot(pl annotacioban), akkor az igazabol 1 sor, es
mukodik. Azonban ha irok egy uj lenyt, akkor semmi sem fogja
kikenyszeriteni, hogy legyen neki az arra vonatkozo informacioja, csak
futas kozben fog elszallni.
Remelem igy erthetobb
sashee
2009/7/22 Böszörményi Péter <zmblevlist at gmail.com>:
> Olvastam az elso levelet (goblin + getAr), de tudnad meg egy kicsit
> reszletezni a dolgot? Ugy erzem itt a koncepcioban van hiba.
>
> On Wed, 22 Jul 2009 20:33:36 +0200, sashee <gsashee at gmail.com> wrote:
>
>> Absztrakt fuggveny meghivasahoz peldanyositani kell az osztalyt. Nekem
>> akkor kellene meghivni a fv-t mielott peldanyositom.
>>
>> 2009/7/22 Böszörményi Péter <zmblevlist at gmail.com>:
>>> On Wed, 22 Jul 2009 20:26:59 +0200, Tamás Sallai <gsashee at gmail.com>
>>> wrote:
>>>> erzem. Inkabb olyasmi lenne a legjobb, ha lenne mondjuk @MustOverwrite
>>>> metaannotacio, amit minden gyerekosztalyban felul kell irni. De sajnos
>>>> meg nem talaltam ilyet.
>>>
>>> Pedig letezik. Absztrakt fuggvenynek hivjak.
>>>
>>>>
>>>> sashee
>>>>
>>>> 2009/7/22 Kristof Jozsa <kristof.jozsa at gmail.com>:
>>>>> az eredeti kérdésre aspectj, compile-time policy enforcement, pár sor.
>>>>> tankönyvi példa:
>>>>>
>>>>> static aspect FlagNonFactoryCreation {
>>>>> declare error
>>>>> : call(Product.new(..)) && !within(ProductFactory+)
>>>>> : "Only ProductFactory can create Products";
>>>>> }
>>>>>
>>>>> azt viszont nem látom h a játékos pénzét hogy látod compile-time ill
>>>>> miért
>>>>> nem a goblin konstruktorába írod bele a feltételt, de goblinokhoz nem
>>>>> értek..
>>>>>
>>>>> K
>>>>>
>>>>> 2009/7/22 sashee <gsashee at gmail.com>
>>>>>>
>>>>>> Sziasztok!
>>>>>>
>>>>>> Van arra valami mod javaban, hogy compile time legyen kenyszeritve
>>>>>> classhoz tartozo tulajdonsag? Pl annotacio meglete vagy statikus
>>>>>> metodus.
>>>>>> Egy pelda a kerdeshez, igy szerintem konnyebben ertheto, hogy mit
>>>>>> szeretnek:
>>>>>> Van egy varos, benne lehet felvenni goblinokat. Goblinnak ara van, es
>>>>>> csak akkor szeretnem peldanyositani, ha a jatekos tenyleg ki is tudja
>>>>>> fizetni. Igy ha a karakterek ososztalyba teszek egy abstract int
>>>>>> getAr() fv-t, akkor azt sajnos nem tudom meghivni, mivel amikor ezt
>>>>>> ellenorizni szeretnem, akkor meg nincsen goblin peldanyom. Ezert
>>>>>> jolenne egy olyan statikus metodus vagy annotacio, amelyik biztos,
>>>>>> hogy letezik, igy reflectionnel mar meg lehetne nezni az arat
>>>>>> barmelyik karakternek, es nem fordulhat az elo, hogy irok mondjuk egy
>>>>>> orkot, es lefordul, de futas kozben pedig hibat dob.
>>>>>> Talan a legjobb, amit eddig talaltam, az az Inherited
>>>>>> metaannotacioval
>>>>>> ellatni az absztrakt os egy annotaciojat, akkor legalabb mindig talal
>>>>>> valamilyet, de igazabol en kenyszeriteni szeretnem a programozot,
>>>>>> hogy
>>>>>> ezt mindenkeppen felul kell biralnia.
>>>>>> Ugy gondolom, hogy talan egy Factory-val lehetne megcsinalni jora,
>>>>>> hogy lenne egy GoblinFactory, ami tudja az arat, valamint tud
>>>>>> peldanyositani is, de en nem szeretnek mindig 2 osztalyt letrehozni,
>>>>>> amikor igazabol 1 is eleg lenne.
>>>>>>
>>>>>> Tud esetleg erre vki vmi elegans megoldast?
>>>>>>
>>>>>> Koszi elore is
>>>>>>
>>>>>> sashee
>>>>>> _______________________________________________
>>>>>> Javalist mailing list
>>>>>> Javalist at javagrund.hu
>>>>>> http://javagrund.hu/mailman/listinfo/javalist
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Javalist mailing list
>>>>> Javalist at javagrund.hu
>>>>> http://javagrund.hu/mailman/listinfo/javalist
>>>>>
>>>>>
>>>> _______________________________________________
>>>> Javalist mailing list
>>>> Javalist at javagrund.hu
>>>> http://javagrund.hu/mailman/listinfo/javalist
>>>
>>>
>>>
>>> --
>>> Üdvözlettel,
>>> Böszörményi Péter
>>> _______________________________________________
>>> Javalist mailing list
>>> Javalist at javagrund.hu
>>> http://javagrund.hu/mailman/listinfo/javalist
>>>
>> _______________________________________________
>> Javalist mailing list
>> Javalist at javagrund.hu
>> http://javagrund.hu/mailman/listinfo/javalist
>
>
>
> --
> Üdvözlettel,
> Böszörményi Péter
> _______________________________________________
> Javalist mailing list
> Javalist at javagrund.hu
> http://javagrund.hu/mailman/listinfo/javalist
>
További információk a(z) Javalist levelezőlistáról