[Modelinterpreter] operacio parameterek multiplicitassal
Boldizsár Németh
nboldi at caesar.elte.hu
Thu Jun 18 10:10:54 CEST 2015
És már le is van implementálva.
A biztonság kedvéért még megnézhetnéd hasonlóan beállított HashSet és
HashMultiset konténerekkel is.
Boldi
On 2015.06.18. 8:54, Dévai Gergely wrote:
> Jo hirem van: Boldi javaslata alapjan megcsinaltam a merest ugy is,
> hogy az ArrayList kapacitasa a konstruktorhivaskor 1-re van allitva.
> Igy nincs kulonbseg sebessegben a referencia es a max egy elemu
> ArrayList hasznalata kozott.
> A javaslatom igy mar egyertelmuen az, hogy nem kell semmit kulon
> wrappelni, hanem az osszes parameter egy ArrayList-ben megy be, aminek
> a kapacitasa a multiplicitas felso korlatja alapjan kerul beallitasra.
>
> Gergo
>
> On Tuesday, June 16, 2015 19:09 CEST, Dévai Gergely
> <deva at caesar.elte.hu> wrote:
> Sziasztok!
>
> Egy gyors meres alapjan egy elem atadasa, az uresseg vizsgalata es az
> elem lekerdezese ArrayList hasznalata eseten kb. 2-szer lassabb a sima
> referencianal.
>
> Udv,
> Gergo
>
> On Tuesday, June 16, 2015 18:15 CEST, Dévai Gergely
> <deva at caesar.elte.hu> wrote:
> Sziasztok!
>
> A mult heti meetingen felmerult az a kerdes, hogy az operaciok mit
> csinalhatnak a paremeterkent kapott objektumhalmazzal.
> Pl.: Egy [0..1] multiplicitasu in-out parametert kinullazhatnak-e?
> Vagy - forditva - egy null parameter helyebe adhatnak-e vissza egy
> objektumot? Altalaban: valtoztathatjak-e szabadon a szamossagot (a
> statikusan megadott korlatok kozott)?
>
> A valasz az UML szabvany szerint igen.
> http://www.omg.org/spec/UML/2.5/Beta2/PDF
> 108. oldal, "Parameters"
>
> A parameterekhez UML-ben lehet "effect" property-t rendelni, ami egy
> tervezoi dontest fejez ki azzal kapcsolatban, hogy az adott behavior
> mit csinalhat az adott parameterrel: create, read, update, delete.
> A szabalyok viszont furcsak:
> - "Only in and inout Parameters may have a delete effect.": Azaz egy
> in parameterkent kapott objetum is torolheto!!!
> - "Only out, inout, and return Parameters may have a create effect."
> (Ez logikus.)
> Az adott parameterben kapott objektumhalmaz szamossaga tehat (a fenti
> szabalyok es a multiplicitas betartasa mellett) letrehozas es torles
> hatasara valtozhat.
> Arra sajnos meg nem talaltam valaszt, hogy egy behavior kiszedhet-e
> egy objektumot a halmazbol anelkul, hogy torlne azt, vagy beletehet-e
> a halmazba mar korabban letezo objektumokat...
>
> Mindenesetre ezek alapjan az implementacionkban [0..1] multiplicitas
> eseten sem johet szoba a sima objektumreferencia atadasa out es inout
> parameterek eseten (sem), mert elkepzelheto, hogy null megy be es nem
> null jon ki. Egyre inkabb hajlok arra, hogy minden parameteratadas egy
> (lehetoleg kis koltsegu) kollekcio segitsegevel valosuljon meg. Ez
> esetben nem kell wrapper osztalyokat csinalni a boolean, double,
> BigInt es String-hez.
> De ha van valami konzisztens modon implementalhato optimalizacio,
> szoljatok!
>
> Udv,
> Gergo
>
>
>
>
>
>
>
>
> _______________________________________________
> Modelinterpreter mailing list
> Modelinterpreter at plc.inf.elte.hu
> https://plc.inf.elte.hu/mailman/listinfo/modelinterpreter
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://plc.inf.elte.hu/pipermail/modelinterpreter/attachments/20150618/be3edf1f/attachment-0001.html>
More information about the Modelinterpreter
mailing list