[Java lista] Class szintu tulajdonsag kenyszeritese compile-time

Tamás Sallai gsashee at gmail.com
2009. Júl. 22., Sze, 20:26:59 CEST


Koszi a valaszt, de az aspectj-s dependenciakat egy kicsit soknak
erzem ehhez a problemahoz, igy inkabb az alap java keretein belul
szeretnek maradni.

Compile time nem fogja tudni megnezni persze, csak azt kell
kikenyszeriteni, hogy runtime biztosan le tudja kerni valahonnan a
goblin arat(biztosan letezzen adott statikus fv, vagy adott
annotacio). Konstruktor nemteljesen jo, mert egyreszt nemigazan a
goblin felelossegenek erzem azt, hogy megnezze, hogy fizetett-e valaki
erte, masreszt akkor a nem vett(hanem mondjuk mar kezdetben a palyan
levo) goblinokert is fizetnie kell valakinek. Najo, ezt ki lehet
kuszobolni 2 konstruktorral, de ezt megint csak tulbonyolitasnak
erzem. Inkabb olyasmi lenne a legjobb, ha lenne mondjuk @MustOverwrite
metaannotacio, amit minden gyerekosztalyban felul kell irni. De sajnos
meg nem talaltam ilyet.

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
>
>


További információk a(z) Javalist levelezőlistáról