globale Varibalen verwenden?

Status
Nicht offen für weitere Antworten.

Partheeus

Aktives Mitglied
Moin,

hab da mal eine grundsätzliche Frage an Euch.
Wir haben hier gerade in der Schule eine Grundsatzdebatte über die
Verwendung globaler Variablen.
Ein Teil behauptet man sollte globale Variablen grundsätzlich vermeiden,
der andere Teil meint, es sei völlig in Ordnung soetwas zu verwenden.

Nun würde ich gern mal Eure Meinung darüber hören, ob ihr
vielleicht da ein wenig Licht ins Dunkel bringen könntet.

Ich persönlich verwende sie auch, wozu sollte es denn soetwas geben,
wenn man die tunlichst vermeiden soll???

Sollte man denn nun globale Variablen vermeiden, oder kann man
sie ruhigen Gewissens verwenden???

Partheeus
 

meez

Top Contributor
Ich nehm jetzt mal an, dass du mit global meinst, dass sie im ganzen Program gültig sind.
Dazu:
Als Konstanten ja.
Sonst ein dickes fettes NEIN.
 
G

Guest

Gast
Ist klar, da aber pro VM nur eine Instanz existiert, eignet sich Singleton dazu
'globale Variablen' zu verwalten. Ist aber pfui (zumindest für diesen Zweck).
 
B

bygones

Gast
meez hat gesagt.:
Anonymous hat gesagt.:
Ausnahme: Singleton (RessourceFactories etc.)
:?: Das sind keine globalen Variablen, sondern statische Zugriffe...
Singletons können schon als globale Variable angesehen werden, da jede Klasse sich die Instanz des Singletons holen kann.

Daher sollte man meiner Meinung nach auch den Gebrauch von Singletons nicht übertreiben !
 
B

Beni

Gast
Schon, nur wieviele Klassen sind das denn, auf welche dieses Attribut zutrifft?

Das Hauptfenster? Hört sich logisch an, ist es aber nicht. Es gibt mehr als ein Programm das während der Laufzeit eine Kopie "von sich selbst" anfertigt, und diese Kopie läuft dann unabhängig weiter... -> es gibt mehr als ein Hauptfenster.

Und bei vielen anderen Klassen die zuerst nach Singelton aussehen kann man ähnliche Dinge finden.
 
B

bygones

Gast
helium hat gesagt.:
Daher sollte man meiner Meinung nach auch den Gebrauch von Singletons nicht übertreiben !
Kann man das denn so direkt beeinflussen? Wenn es von einer Klasse definitiv nur eine Instanz geben soll, dann ist das so.
Kann man schon. Oft passiert es dass man durch fehlerhaftes Klassendesign unnötige Singletons erstellt. So ist zum Beispiel die Listener Verwaltung manchmal komplett vergessen und man kommuniziert direkt über Klassen (und da wäre das S. eine Möglichkeit um von einer auf eine andere Klasse zuzugreifen).

Ansonsten stimmte ich dir zu - bei Klassen die definitiv nur eine Instanz haben sollen, da ist das S. ein guter und nützlicher Aspekt - man sollte sich dennoch überlegen, ob es manchmal auch anders gehe
 

meez

Top Contributor
deathbyaclown hat gesagt.:
Singletons können schon als globale Variable angesehen werden, da jede Klasse sich die Instanz des Singletons holen kann.

Das kann man mit jeder anderen Klasse auch..


deathbyaclown hat gesagt.:
Daher sollte man meiner Meinung nach auch den Gebrauch von Singletons nicht übertreiben !

Warum nicht? Schlussendlich arbeitet man ja trotzdem mit einem Objekt, und nicht mit statischen Methoden...
 
G

Guest

Gast
@meez
So war's gemeint. Geht nur mit Singleton.
Code:
public class Globals
{
  private static Globals instance = null;
  private int globaleVariable = 0;

  private Globals() {}

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

  public int getGlobaleVariable()
  {
    return this.globaleVariable;
  }

  public void setGlobaleVariable(int globaleVariable)
  {
    this.globaleVariable = globaleVariable;
  }
}

...
Globals.getInstance().setGlobaleVariable(1);
bzw.
Globals.getInstance().getGlobaleVariable();
Globaler geht's nicht ;)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Globale Maus Allgemeine Java-Themen 7
Tommy Nightmare Klassen Globale Klassen erstellen Allgemeine Java-Themen 7
M Generische Methoden mit Java und globale Variablen Allgemeine Java-Themen 9
B Globale Hotkeys Allgemeine Java-Themen 6
N suche globale Tastenabfrage Allgemeine Java-Themen 6
B globale und lokale Variablen Allgemeine Java-Themen 17
L "globale" properties Datei Allgemeine Java-Themen 4
H globale Variable wird nicht überall erkannt Allgemeine Java-Themen 3
C Dynamische Varibalen Allgemeine Java-Themen 3
O regulärer Ausdruck zum durchsuchen eines Strings verwenden Allgemeine Java-Themen 2
J Welchen Packager soll ich verwenden. Allgemeine Java-Themen 7
H lokale Variable bei Optional verwenden Allgemeine Java-Themen 11
M Exceptions - wann / wie verwenden? Allgemeine Java-Themen 4
S Array dynamisieren oder ArrayList verwenden? Allgemeine Java-Themen 17
bueseb84 Git : Mehrere Server verwenden Allgemeine Java-Themen 3
W Was genau sind IOTools? Kann ich stattdessen nicht die Scanner Klasse verwenden? Allgemeine Java-Themen 3
D Klassen JLabels in anderen Klassen verwenden. Allgemeine Java-Themen 7
D API Keys mehrmals verwenden Allgemeine Java-Themen 6
K For-Schleife <> oder != Operator verwenden? Allgemeine Java-Themen 2
J Eigene Api erstellen und dann auch verwenden - Ordnerstruktur Allgemeine Java-Themen 1
J PDFBox kommerziell verwenden Allgemeine Java-Themen 15
S Variablen split-Funkton mit zwei Variabeln verwenden? Allgemeine Java-Themen 4
K jar-Datei lässt sich unter Windows nicht verwenden Allgemeine Java-Themen 3
M Java Mail verwenden Allgemeine Java-Themen 20
Neumi5694 Interface Generics für Enum-Filterung verwenden Allgemeine Java-Themen 5
J Interface Wofür Interfaces in Java verwenden? Allgemeine Java-Themen 3
Neumi5694 Operatoren regEx für das Erstellen eines Strings verwenden Allgemeine Java-Themen 3
O 3D-Grafik java3D in eclipse verwenden Allgemeine Java-Themen 0
J Allgemein gültige Klasse/Methode mehrfach verwenden Allgemeine Java-Themen 11
R Threads ReentrantLock mehrfach verwenden Allgemeine Java-Themen 3
J Interface Interface für Framework verwenden Allgemeine Java-Themen 4
G Services verwenden sich gegenseitig Allgemeine Java-Themen 4
R Dateimanager verwenden Allgemeine Java-Themen 2
P Variablen Variable von void im ActionListener verwenden Allgemeine Java-Themen 3
N VB Code in Java verwenden Allgemeine Java-Themen 5
P java.nio.file unter Java 6 verwenden Allgemeine Java-Themen 4
A Klassen String Array in anderer Klasse verwenden Allgemeine Java-Themen 11
P JDK installieren Mac OS X - JDK7 in Eclipse Juno verwenden Allgemeine Java-Themen 3
L Eine jar verwenden, die intern auf eine andere jar zugreift Allgemeine Java-Themen 7
S Aus Programm Klasse erstellen und verwenden Allgemeine Java-Themen 10
R Collections CopyOnWriteArrayList - wie genau verwenden Allgemeine Java-Themen 7
M Lock Datei intelligent verwenden Allgemeine Java-Themen 4
J Eure Meinung: Threads verwenden, oder nicht? Allgemeine Java-Themen 6
X Threads Thread mehrmals verwenden Allgemeine Java-Themen 4
G JGoodies Binding oder EventBus verwenden? Allgemeine Java-Themen 11
E Kann nicht gesamten HeapSpace verwenden Allgemeine Java-Themen 5
A Eigenen OutputStream schreiben und verwenden Allgemeine Java-Themen 9
M Poi-Excel: vorhandene Formatierung verwenden Allgemeine Java-Themen 2
B boolean return typ verwenden? Allgemeine Java-Themen 5
R ResourceBundle in Servlets verwenden Allgemeine Java-Themen 13
A Welche Exception verwenden? Allgemeine Java-Themen 2
R Java function die Strings escaped, sodass ich sie in Javascript verwenden kann? Allgemeine Java-Themen 4
MQue Vector<..> nicht verwenden Allgemeine Java-Themen 4
T Pfad aus Dateilesen -> wie diesen Pfad verwenden! Allgemeine Java-Themen 13
R in einem neuen Runnable() eine lokale Varibale verwenden Allgemeine Java-Themen 2
G dll verwenden Allgemeine Java-Themen 2
A Bestimmte JVM verwenden Allgemeine Java-Themen 13
R array.length in For-Schleife verwenden? Allgemeine Java-Themen 22
F Generics: spricht etwas dagegen raw types zu verwenden? Allgemeine Java-Themen 31
B Passwort verwenden ohne dass es im Quelltext steht Allgemeine Java-Themen 24
D Lostus Notes Adressbuch in eine Java-Webanwendung verwenden Allgemeine Java-Themen 4
G JasperReports: Verwenden von vorkompilierten Reports Allgemeine Java-Themen 2
ToNyXXL Als Mauszeiger eigenes Bild verwenden! Allgemeine Java-Themen 3
A Windows Bitmap-Handle in Java verwenden Allgemeine Java-Themen 2
G Ab wann Datenbank verwenden Allgemeine Java-Themen 15
D .dlls mit Java verwenden Allgemeine Java-Themen 2
M JNI mit vorhandenen libs oder dlls verwenden Allgemeine Java-Themen 2
N Klasse die in C geschrieben wurde in Java verwenden? Allgemeine Java-Themen 20
H Tastatur eingaben verwenden Allgemeine Java-Themen 30
E Statt HashSet die TreeSet verwenden Allgemeine Java-Themen 4
G eigene klassen die ein jar verwenden als neues jar erstellen Allgemeine Java-Themen 4
M java klassen beerben u. den gleichen namen verwenden?(Naming Allgemeine Java-Themen 6
S Änderungen im Source-Code direkt verwenden können? Allgemeine Java-Themen 3
R Sofort "eth0" verwenden Allgemeine Java-Themen 2
G Photoshop Plugins in Java verwenden. Allgemeine Java-Themen 3
G JRE 1.5.0-rc nicht als Standard-JRE verwenden Allgemeine Java-Themen 6
P Welche Collection verwenden? Allgemeine Java-Themen 4
S Comparator verwenden? Allgemeine Java-Themen 2
J System Tray verwenden Allgemeine Java-Themen 7

Ähnliche Java Themen

Neue Themen


Oben