Avatar billede starfish Nybegynder
06. december 2001 - 18:05 Der er 3 kommentarer og
1 løsning

Container og Iterator

Hejsa. Nu har jeg svedt godt og grundigt over et problem jeg har:

Har flg. opbygning:

databasef (package)
+Database (class)
+-loadFromDB (method)



graenseflade (package)
+SwingGUI
+-Init

kunder (package)
+Kunde
+KundeContainer

-------------


Så er spørgsmålet, hvor skal jeg smide den \"globale\" kundecontainer? (static KundeContainer kundec) det skal være så alle de andre kan bruge den.

Ligeledes skal jeg have en iterator, der skal bruges til at sprigen både frem og tilbage i kundec. Denne skal også være tilgængelig, men kun i SwingGUI, der bruger det i forbindelse med Forrige / Næste knapper.

Kundec bliver ikke fyldt med kunder før jeg trykker på en knap. Har det noget at sige, hvis jeg f.eks. først laver en static ListIterator itr; i min SwingGUI?
Avatar billede hankster Nybegynder
06. december 2001 - 19:05 #1
opgiv!

og drop ud af skolen..!
Avatar billede erikjacobsen Ekspert
06. december 2001 - 20:29 #2
Du skal ikke have en static KundeContainer kundec - nej da...

Lav et \"hovedprogram\" - dvs. en klasse med kun en main()-metode. Den opretter
de nødvendige objekter i programmet, og giver f.x. containerobjektet med til
GUI-constructoren
Avatar billede bearhugx Nybegynder
06. december 2001 - 22:35 #3
Eller evt. (hvis der kun må findes én KundeContainer) så implementér Singleton Mønster

public class KundeContainer
{
...
private KundeContainer __self = null;

public static KundeContainer getInstance()
{
  if( __self == null )
    __self = new KundeContainer();
  return __self;
}

private KundeContainer()
{
  ...init...
}
}

Så kan du kalde/tilgå KundeContainer\'en når du har brug for den...
Jeg har personligt haft en del bøvl med ErikJacobsen\'s fremgangsmåde - men jeg er nok også lidt bøvlet :-))

Hvis du bruger ErikJacobsen\'s metode, så husk dog at lave GUI\'en til sidst... Da Swing-GUI\'er er flertrådet, kan man opleve en masse NullPointerExceptions hvis GUI\'en begynde at tilgå objekter, som (i den anden tråd) ikke er blevet oprettet endnu...

Det er også derfor jeg bruger Singletons i stedet - Der bliver KundeContainer objektet selv ansvarlig for at være initialiseret....

/Søren
Avatar billede bearhugx Nybegynder
06. december 2001 - 22:35 #4
Hov... jeg havde egenligt tiltænkt det som en svar ...:-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester