Avatar billede 49152 Nybegynder
27. oktober 2001 - 16:11 Der er 4 kommentarer og
2 løsninger

Klasse som lever permanent

Hvad er det nu det hedder hvis man gerne vil have en klasse som ligsom lever permanent i ens runtime.

F.eks. bruger man det hvis man har en web-server, og gerne vil have en connentionpool. Så vil man jo gerne instatierer den når webserveren starter, og så skal man i alle .java bare kunne skrive connectionpool.getConnection().

Man kan så også bruge samme princip hvis man vil have nogen klasser som læser fra databasen, til at cache inforformation.

Hvad er det nu det hedder, det har et eller andet java-navn. Man må også gerne provide et lille bitte eksempel. Helst et minimums-eksempel, ikke et eller andet flere sider langt.

Venlig Hilsen
Avatar billede bearhugx Nybegynder
27. oktober 2001 - 18:42 #1
Hvad med at lave en klasse, som du kalder, når webapplikationen starter (kan defineres i web.xml-filen),  og som gemmer ConnectionPool\'en i ServletContext-scope

/Søren

Uddybende forklaring gives på forlangende...
Avatar billede logical Nybegynder
27. oktober 2001 - 20:18 #2
Det kaldes en singleton klasse, og det er ikke et javanavn, det er et design pattern navn.

public class Singleton
  private static final instance _ELVIS = new Singleton();

  // Private constructor, no impersonators allowed.
  private Singleton() {}

  // Load the one and only.
  public static Singleton getSingleton() {
    return _ELVIS;
  }

  // All necessary methods.
  public void doit() { ...}
Avatar billede carstenknudsen Nybegynder
27. oktober 2001 - 22:42 #3
logical: Det der eftersøges her er ikke en
singleton design pattern.  En singleton pattern
er blot et udtryk for at kun en enkelt
instans af et objekt skal eksistere, ikke
at den skal eksistere hele tiden.
PS Angående implementering af singleton, så
husk readResolve metoden for at gøre det til en
rigtig singleton, også hvad angår serialisering.
Avatar billede disky Nybegynder
28. oktober 2001 - 14:25 #4
49152:

Så er logical\'s løsning også brugbart, første gang nogen kalder den objekt bliver det oprettet og lever indtil JVM lukker ned.
Avatar billede logical Nybegynder
28. oktober 2001 - 16:41 #5
carstenknudsen>> Jeg må give dig ret, at det ikke helt var et Singleton han spurgte efter (Jeg læste det som ConnectionPool.getConnectionPool()), men så vil han have en static class, som er instantieret pr. default, og her er Singleton et bedre alternativ alligevel.

Derudover, har jeg ingen brug for at implementere readResolve metode, hvis jeg ikke gør klassen Serializable. Jeg plejer trods alt at vide, hvad jeg laver :-)
Avatar billede 49152 Nybegynder
29. oktober 2001 - 10:26 #6
Jamen jeg er ude efter to ting, både det der singleton-begreb. Og så hvordan jeg skal bruge min Connetionpool, uden at skulle initalisere den hvergang.

Men jeg tror jeg kan klare mig nu.

Venlig Hilsen, og Tak.
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