Antwort
 
LinkBack Themen-Optionen Thema durchsuchen
Alt 14.10.2008, 19:12 Nach oben    #1
Corvin Gröning
 
Benutzerbild von Corvin
 
Registriert seit: 19.03.2005
Ort: S-H | Flensburg
Beiträge: 464
Standard Wann Klassen-Mitglieder als statisch definieren?

Wenn ich eine Klasse für ein Text-Feld eines Formulars habe, erzeuge ich für jedes Text-Feld ein neues Objekt. Ich könnte in der Klasse eine statische Eigenschaft definieren, um die Anzahl der Objekte/Text-Felder zu zählen. Weiterhin benötigt man eine statische Methode zur Umsetzung des Singleton Patterns.
Soweit ist alles klar.

Aber wie ist es nun mit einer FrontController oder Registry Klasse eines Frameworks? Ich könnte auf die Mitglieder zugreifen, in dem ich ein Objekt der Klasse erzeuge. Da nur ein Objekt benötigt wird, kann ich für die Klassen das Singleton Pattern verwenden. Ich könnte aber auch alle Mitglieder als statisch definieren und ohne Objekt auf diese zugreifen.
Meine Frage daher: Wann genau sollte ich mit Objekten und wann mit statischen Mitgliedern arbeiten? Wo liegen die Vor- und Nachteile?
__________________
Corvin ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.10.2008, 19:46 Nach oben    #2
Wikinger
 
Benutzerbild von xardias
 
Registriert seit: 02.03.2006
Ort: Aachen
Beiträge: 298
Standard

Also es ist sicher möglich alle Variablen/Methoden als statisch zu definieren, statt z.B. ein Singleton zu verwenden.
Ob das sinnvoll ist.. ist denke ich eher eine Frage des Stils als der Praktikabilität.
Statische elemente sind eigentlich nichts anderes als globale Variablen mit einem schöneren Namen ;).
Daher treffen dort auch all die Eigenschaften globaler Variablen zu, und in Objekt orientierten Strukturen ist das meistens eher unpassend.
Objekt orientierte Anwendungen leben von Objekten und deren Beziehungen, da ist ein Objekt, dass eine Beziehung zu alles und jedem haben kann ein kleiner Bruch im Konzept.

Praktische Nachteile gibt es jedoch eigentlich keine. Eventuell könnte man anbringen, dass eine globale Variable eben von überall aus geändert werden kann, und das muss man beachten. Bei Variablen innerhalb der OOP Struktur ist durch die Klassenbeziehungen genau festgelegt wer, wie darauf zugreifen kann. Somit kannst du als Klassenauthor das Zugriffsverhalten definieren.

Geändert von xardias (14.10.2008 um 19:50 Uhr)
xardias ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.10.2008, 20:09 Nach oben    #3
Benjamin Steininger
 
Benutzerbild von robo47
 
Registriert seit: 02.06.2005
Ort: weiher im tiefsten Odenwald
Beiträge: 1.379
Standard

Aus einer Vorlesung an der Uni hab ich im Hinterkopf dass bei C++ die Deklaration statische Variablen und Methoden etwas langsamer und etwas speicheraufwendiger ist also von normalen, gleiches gilt auch für den Aufruf, auf einem Blog hab ich das vor einiger Zeit so auch für PHP gelesen.
robo47 ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.10.2008, 20:47 Nach oben    #4
Corvin Gröning
 
Benutzerbild von Corvin
 
Registriert seit: 19.03.2005
Ort: S-H | Flensburg
Beiträge: 464
Standard

Zitat:
Zitat von xardias Beitrag anzeigen
Objekt orientierte Anwendungen leben von Objekten und deren Beziehungen, da ist ein Objekt, dass eine Beziehung zu alles und jedem haben kann ein kleiner Bruch im Konzept.
Stimmt. Und wenn das Arbeiten mit Objekten auch noch performanter ist, dann ist dies wohl sinnvoller, als mit statischen Mitgliedern zu arbeiten, auch wenn letzteres ein paar Zeichen gespart hätte. :)

Danke für die Antworten!
__________________
Corvin ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Anwendungsgebiet für innere Klassen Spacerat PHP-Programmierung 4 12.04.2008 21:42
Klassen für Eingabeüberprüfungen ? Doggi PHP-Programmierung 15 31.01.2006 09:37
alle Klassen eines Packages ermitteln ehli75 Allgemeine Java-Programmierung 3 16.12.2005 13:30
PropertyChangeEvent etc. auch für Klassen, die keine Beans sind? NewYork Allgemeine Java-Programmierung 2 23.11.2005 00:07
klassen dokumentation automatisieren beny_mcde Tools, Server, Betriebssysteme 4 19.10.2005 20:03


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:10 Uhr.


Powered by vBulletin® Version 3.8.4 (Deutsch)
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.3.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47