[Java lista] Class szintu tulajdonsag kenyszeritese compile-time

Böszörményi Péter zmblevlist at gmail.com
2009. Júl. 22., Sze, 21:15:40 CEST


Ha beegeted a kodba, h mennyi az annyi, akkor ar valtoztatas eseten ujra  
kell forgatni az egeszet. Marhara tud fajni.

On Wed, 22 Jul 2009 21:14:11 +0200, sashee <gsashee at gmail.com> wrote:

> Ketseg kivul ez a legegyszerubb megoldas, de az annotacios szerintem
> szebb(ugyanabban az osztalyban van a ra vonatkozo informacio). Dehat
> igen, ez sem kenyszerit semmit.
> Esetleg azt tudom meg elkepzelni, hogy a progi indulasnal leellenorzni
> az osszes leszarmazott osztalyt, hogy ott van-e az annotacio, es akkor
> legalabb rogton indulasnal kiderul ha lemaradt vhonnan.
>
> 2009/7/22 Böszörményi Péter <zmblevlist at gmail.com>:
>> Igen, igy mar erteheto.
>>
>> Mi lenne, ha lenne egy osszerendeles, ami csak azt mondana meg, hogy
>> melyik lenyhez milyen ar ertek tartozik. Pl. egy Class - double paros.  
>> Ez
>> ugyan a forditas ideju ellenorzest nem teszi lehetove, de nem lesz
>> nyakatekert a kod.
>>
>> On Wed, 22 Jul 2009 20:59:17 +0200, sashee <gsashee at gmail.com> wrote:
>>
>>> 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
>>>>
>>> _______________________________________________
>>> 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


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