Avatar billede dannv Nybegynder
13. juli 2005 - 15:53 Der er 7 kommentarer og
1 løsning

static, singleton eller?

Jeg er kommet i tvivl om hvordan jeg skal løse et problem. Først problemet:

Jeg skal læse nogle værdier i en konfigurationsfil, her er der f.eks ip adresse på min server. Det benyttes i komm. mellem min klient og server. Men den måde jeg har det på i øjeblikket bliver værdien læst hvergang jeg vil sende noget.

Hvordan skal jeg gøre hvis jeg kun een gang vil læse en værdi, som jeg så kan benytte igen og igen i min app...??

Dann
Avatar billede arne_v Ekspert
13. juli 2005 - 16:29 #1
Hvis du har travlt - en klasse med public static fields.

Hvis du har tid til at gøre det ordentlig - en singleton.
Avatar billede arne_v Ekspert
13. juli 2005 - 16:30 #2
eksempel:

import java.util.*;
import java.io.*;

public class Config {
  private Properties props;

  private static Config instance = null;

  private Config() {
      props = new Properties();
      try {
        props.load(new FileInputStream("C:\\Config.properties"));
      } catch (FileNotFoundException e) {
      } catch (IOException e) {
      }
  }

  public synchronized static Config getInstance() {
      if (instance == null) {
        instance = new Config();
      }
      return instance;
  }

  public int getN() {
      return Integer.parseInt(props.getProperty("N"));
  }

  public String getS() {
      return props.getProperty("S");
  }

}
Avatar billede dannv Nybegynder
13. juli 2005 - 19:24 #3
.. tja, travl det har man vel altid, men jeg vil hellere gøre det ordentligt... så singleton må det jo bliver....

Jeg er novice ud i dette pattern, men ideen er vel at jeg laver en singleton klasse, og her henter alle mine konfig parametre med getter metoder. Når jeg så skal bruge information fra min singleton kalder jeg

Config con = Config.getInstance();

(Bruger en klasse metode til at gøre en instans tilgængelig...?? og derefter kalder getter)

if(con.getS().equals("S))
{
    bla bla bla...
}

... korrekt???
Avatar billede arne_v Ekspert
13. juli 2005 - 19:31 #4
jep
Avatar billede dannv Nybegynder
13. juli 2005 - 20:04 #5
smæk et svar på banen så kommer der points i din retning... endnu engang tak for hjælpen...
Avatar billede arne_v Ekspert
13. juli 2005 - 20:06 #6
kommer her
Avatar billede arne_v Ekspert
13. juli 2005 - 20:07 #7
java 1.4 introducerede iøvrigt preference API som netop er beregnet til konfiguration

imidlertid mener jeg at det er et klassisk eksempel på hvordan man kan gøre
noget meget simpelt umådeligt komplekst
Avatar billede dannv Nybegynder
13. juli 2005 - 20:10 #8
... ok jeg kan prøve at tage et kik, men min applikation har 3 konfig parametre, så jeg gider ikke at sætte himmel og jord i bevægelse...
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