/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
Flyweight Pattern i editorfelt
Fra : Rune Nielsen


Dato : 31-01-01 10:20

Hej,

Jeg er ved at implementere et "lightweight" editorfield i et
GUI-framework og vil benytte mig af et Flyweight Design
Pattern, så jeg har objekter for hver enkelt række og
bogstav.

Som angivet i beskrivelsen af Flyweight (i "Design
Patterns", Gamma et al) har jeg en Row- og en Character-
klasse. Desuden har jeg en Context-klasse, som holder styr
på hvilke fonte der hører til hvilke del-strenge og så videre.
Jeg har desuden en Factory-klasse, der kan skabe Character-
objekter.

Min Character-klasse indeholder kun en attribut med værdien
af bogstavet som en char, samt en draw-metode, der kan tegne
char'en. Ideen er, at Row skal iterere igennem sine Character-objekter
og kalde draw-metoden på hver enkelt for at tegne rækken. Men
hvordan finder jeg ud af, hvor det enkelte Character-objekt skal
tegnes?

Lige umiddelbart virker det som om, at det er Context der burde vide
dette og det ville også være fint hvis jeg kunne "spørge" Context, hvor
char'en skal tegnes, men denne position må være bestemt af hvor
brede de foregående char's har været -- og hvordan kan Context
finde ud af det, hvis Character ikke returnerer sin bredde til Context
så denne kan holde styr på den x-position, den næste char skal tegnes
på (ved at lægge bredden af alle foregående chars sammen)?

Jeg håber, at der er nogen, der kan komme med et eller andet genialt
forslag.. jeg sidder lidt fast med det problem.

Hvis der er nogen der ved, at der er andre der har implementeret en
editor med brug af Flyweight, er jeg også meget interesseret i at høre
om det. Det kunne være rart at have noget kode at snuppe :)

Med venlig hilsen,
Rune Nielsen, rn@picit.dk



 
 
Niels (niLLer) (31-01-2001)
Kommentar
Fra : Niels (niLLer)


Dato : 31-01-01 16:48

Just as I expected, "Rune Nielsen" <rn@picit.dk> came up with this:

>Min Character-klasse indeholder kun en attribut med værdien
>af bogstavet som en char, samt en draw-metode, der kan tegne
>char'en. Ideen er, at Row skal iterere igennem sine Character-objekter
>og kalde draw-metoden på hver enkelt for at tegne rækken. Men
>hvordan finder jeg ud af, hvor det enkelte Character-objekt skal
>tegnes?

Når et Character skal tegne, så spørger det sin Række om hvad den
næste position er og så tegner det sig selv der. Draw-funktionen kan
så returnere -1 hvis den mislykkedes (?) ellers hvor bredt et
Character den har tegnet. Så kan den kaldende Række klasse increase
positionen af næste Character.

Niels (aka. niLLer)
--
e-mail: nmartin at iname dot com ICQ UIN: 50187323
http://www.niller.f2s.com/ - niLLer's pages (My programs, in English)
http://whitehat.dk/g4s/ - The G4S Page (Personlig side, på dansk)
-- No longer Windozed!

Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408941
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste