|
| Problem Fra : Tonni Schmücker |
Dato : 01-05-02 19:42 |
|
Hej NG
Hvis jeg har en klasse "Bruger" som er en abstrakt klasse. og fra den er der
nedarvet 2 andre klasser "Ansat" og "Medlem".
en bruger vil logge på systemet og indtaster sit brugernavn og password,
disse oplysninger skal pakkes ind i et objekt af typen "bruger" men da den
klasse er abstrakt kan jeg jo ikke instantiere et objekt! problemet er at
ens muligheder for at ændre i systemet ligger i om man er en Ansat eller et
Medlem, men jeg skal jo hente brugerens oplysninger i en database og ved
ikke hvilken type bruger der er tale om, før jeg har undersøgt databasen!
GUI'en henter altså oplysningerne i nogle tekstFields (Strings) og sender
dem videre til databasen i et objekt (Bruger) men det kan jeg jo ikke, da
bruger ikke kan instantieres ... hjælp ....!!!! håber der er nogle der
forstår ...
MVh .. Tonni Schmücker
| |
Dennis Thrysøe (02-05-2002)
| Kommentar Fra : Dennis Thrysøe |
Dato : 02-05-02 07:40 |
|
Du kunne lave en BrugerFactory, som kan finde ud af at hente de fornødne
data op fra databasen, instantiere et objekt af den rigtige type, og
derefter sætte data på objektet.
Mange gange læser man din problemstilling ved agreggering.
Du kunne f.eks. lave en klasse Bruger der har en reference til en anden
klasse Rettigheder, som siger noget om hvad brugeren må. Den kode der
laver et Brugerobjekt kunne så også lave et Rettigheder objekt. (Dette
er lidt som ACL'er ofte bruges).
-dennis
Tonni Schmücker wrote:
> Hej NG
>
> Hvis jeg har en klasse "Bruger" som er en abstrakt klasse. og fra den er der
> nedarvet 2 andre klasser "Ansat" og "Medlem".
>
> en bruger vil logge på systemet og indtaster sit brugernavn og password,
> disse oplysninger skal pakkes ind i et objekt af typen "bruger" men da den
> klasse er abstrakt kan jeg jo ikke instantiere et objekt! problemet er at
> ens muligheder for at ændre i systemet ligger i om man er en Ansat eller et
> Medlem, men jeg skal jo hente brugerens oplysninger i en database og ved
> ikke hvilken type bruger der er tale om, før jeg har undersøgt databasen!
> GUI'en henter altså oplysningerne i nogle tekstFields (Strings) og sender
> dem videre til databasen i et objekt (Bruger) men det kan jeg jo ikke, da
> bruger ikke kan instantieres ... hjælp ....!!!! håber der er nogle der
> forstår ...
>
> MVh .. Tonni Schmücker
>
>
| |
Morten Olsson (02-05-2002)
| Kommentar Fra : Morten Olsson |
Dato : 02-05-02 14:27 |
|
"Tonni Schmücker" <Tonni@cool.dk> skrev i en meddelelse
news:aapd0u$o50$1@news.cybercity.dk...
> Hej NG
>
> Hvis jeg har en klasse "Bruger" som er en abstrakt klasse. og fra den er
der
> nedarvet 2 andre klasser "Ansat" og "Medlem".
>
> en bruger vil logge på systemet og indtaster sit brugernavn og password,
> disse oplysninger skal pakkes ind i et objekt af typen "bruger" men da den
> klasse er abstrakt kan jeg jo ikke instantiere et objekt! problemet er at
> ens muligheder for at ændre i systemet ligger i om man er en Ansat eller
et
> Medlem, men jeg skal jo hente brugerens oplysninger i en database og ved
> ikke hvilken type bruger der er tale om, før jeg har undersøgt databasen!
> GUI'en henter altså oplysningerne i nogle tekstFields (Strings) og sender
> dem videre til databasen i et objekt (Bruger) men det kan jeg jo ikke, da
> bruger ikke kan instantieres ... hjælp ....!!!! håber der er nogle der
> forstår ...
>
> MVh .. Tonni Schmücker
>
>
Tja - er det ikke lettest at starte med at slå op i din DB - finde ud af
hvilken
subklasse bruger du har brug for på baggrund af disse data, og så noget i
stil med:
boolean isAnsat = (noget database sjov her)
if (isAnsat)
return Ansat ansat = new Ansat(..........)
else
return Medlem medlem = new Medlem(.......)
eller har jeg misforstået noget ?
Et Ansat objekt og et Medlem objekt er jo begge Bruger objekter da de arver,
og du kan fint caste dem til Bruger objekter når det er nødvendigt...
hilsen Morten
| |
|
|