php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 13.09.2011, 20:12  
Benutzer
 
Registriert seit: 10.06.2010
Beiträge: 37
PHP-Kenntnisse:
Fortgeschritten
acetox94 befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Objektabhängigkeiten

Hallo liebe Community,

Ich hab da mal ne Frage.. Ich beschäftige mich momentan mit Softwaredesign und versuche nun Klassenpakete mithilfe meines neuen Wissens zu erstellen.. nur.. leider macht mir die Praxis einen Strich durch die Rechnung^^ Und zwar: Es geht um Objektabhängigkeiten. Diese sollte man ja wenn möglich als Parameter übergeben (Dependency Injection) und nich direkt in dem Objekt instanzieren, das die Abhängikeit benötigt. Ich weis nich, vllt hab ich mir da was zu stark in den Kopf gesetzt, aber ich stehe hier grad vor dem Problem, dass ich eine Instanz innerhalb einer Methode einer anderen Klasse erzeugen MUSS.
Jetzt meine Frage: Ist es generell "schlimm" wenn Objekte andere Klassen instanzieren? Wenn ja, was für möglichkeiten gibt es, solche Abhängigkeiten zu verringern? Sollte eine Klasse ihre Umgebung bzw. dessen abhängige Klassen kennen oder nicht?

Mfg Fips.
acetox94 ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 13.09.2011, 20:25  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
Wenn ja, was für möglichkeiten gibt es, solche Abhängigkeiten zu verringern? Sollte eine Klasse ihre Umgebung bzw. dessen abhängige Klassen kennen oder nicht?
Das hast Du doch oben selbst beantwortet. Was Du dagegen nicht geschrieben hast, ist, welcher Zwang denn nun besteht, das tun zu „müssen“
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 13.09.2011, 20:29  
Benutzer
 
Registriert seit: 10.06.2010
Beiträge: 37
PHP-Kenntnisse:
Fortgeschritten
acetox94 befindet sich auf einem aufstrebenden Ast
Standard

Der "Zwang" ist einen möglichst flexiblen und austauschbaren "Klassenpool" zu programmieren. Wenn Klassen sich kennen dürfen, warum gibt es dann sowas wie Dependency Injection?
acetox94 ist offline   Mit Zitat antworten
Alt 13.09.2011, 20:41  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Nein, das ist nicht der Zwang.
Zitat:
aber ich stehe hier grad vor dem Problem, dass ich eine Instanz innerhalb einer Methode einer anderen Klasse erzeugen MUSS.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 13.09.2011, 23:14  
Benutzer
 
Registriert seit: 10.06.2010
Beiträge: 37
PHP-Kenntnisse:
Fortgeschritten
acetox94 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Jetzt meine Frage: Ist es generell "schlimm" wenn Objekte andere Klassen instanzieren? Wenn ja, was für möglichkeiten gibt es, solche Abhängigkeiten zu verringern? Sollte eine Klasse ihre Umgebung bzw. dessen abhängige Klassen kennen oder nicht?
acetox94 ist offline   Mit Zitat antworten
Alt 13.09.2011, 23:42  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.268
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Nein, generell schlimm ist es nicht. Schliesslich ist dein MVC-Controller ja auch eine Klasse, instanziert aber moeglicherweise deine Models.

Mach doch mal ein Beispiel, wer was instanziert, warum und vor allem warum es alternativlos fuer dich erscheint.
__________________
"Nuschel ich?" - "Was?"
Chriz ist offline   Mit Zitat antworten
Alt 13.09.2011, 23:59  
Erfahrener Benutzer
 
Benutzerbild von mermshaus
 
Registriert seit: 14.06.2009
Beiträge: 1.731
PHP-Kenntnisse:
Fortgeschritten
mermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz sein
Standard

Es lässt sich theoretisch immer eine Factory injizieren. Aber ein konkretes Beispiel fände ich auch gut.
__________________
Blog | Buch | Kaloa
mermshaus ist offline   Mit Zitat antworten
Alt 14.09.2011, 09:41  
Erfahrener Benutzer
 
Registriert seit: 30.07.2008
Beiträge: 1.167
PHP-Kenntnisse:
Fortgeschritten
xm22 sorgt für eine eindrucksvolle Atmosphärexm22 sorgt für eine eindrucksvolle Atmosphärexm22 sorgt für eine eindrucksvolle Atmosphäre
Standard

Zitat:
Wenn Klassen sich kennen dürfen
Die Klassen selber sollen sich ja nicht kennen müssen. Lediglich (Im Idealfall) die dazugehörigen Interfaces. Das ist ja gerade der Vorteil von Dependency Injection.
xm22 ist offline   Mit Zitat antworten
Alt 14.09.2011, 12:54  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.172
PHP-Kenntnisse:
Anfänger
litterauspirna sorgt für eine eindrucksvolle Atmosphärelitterauspirna sorgt für eine eindrucksvolle Atmosphäre
litterauspirna eine Nachricht über ICQ schicken
Standard

Ich denke auch hier fehlt der konkrete Anwendungsfall.

Es gibt Fälle wo es Sinn macht in einer Klasse eine Instanz auf ein anderes Objekt zu bilden, wirklich einfallen tut mir da auch nur erst mal ein Model und einen ModelWrapper in einen Controller zu instanzieren. Da Models und ModelWrapper in der Regel immer Controllerabhängig sind macht das hier sogar Sinn das der Controller seine Models und ModelWrapper kennt, warum auch nicht.

Ansonsten bzw. in den meisten Fällen sollte aber gegen Interfaces programmiert werden um eine gewisse lose Koppelung von der Anwendung zu gewährleisten.

Gruß Litter
__________________
Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
http://www.lit-web.de
litterauspirna ist offline   Mit Zitat antworten
Alt 14.09.2011, 17:12  
Benutzer
 
Registriert seit: 10.06.2010
Beiträge: 37
PHP-Kenntnisse:
Fortgeschritten
acetox94 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von litterauspirna Beitrag anzeigen
Ansonsten bzw. in den meisten Fällen sollte aber gegen Interfaces programmiert werden um eine gewisse lose Koppelung von der Anwendung zu gewährleisten.
exakt. Gut. Ich geb mal ein Beispiel: Ich abeite momentan an einem Dateisystem-Paket. Dieses enthählt (unter anderem^^) 2 Klassen: File und Dir. Die Klasse Dir enthählt die Methode getChildren(), die alle Ordner und Datein innerhalb des Ordners als Instanz zurückgeben soll (Also Bei Datei ein Objekt der Klasse File und bei einem Ordner ein Objekt der Klasse Dir). Die Funktion getChildren in der Klasse Dir muss jez aber natürlich den Namen der Klasse File wissen, hat jedoch eigentlich garnix mit der Klasse zu tun. Würde ich jetzt z.B. eine Klasse ConfigFile anlegen und würde wollen, dass die Methode getChildren() bei einer Konfigurationsdatei eine Instanz der Klasse ConfigFile zurückgeben soll, müsste die Funktion auch deren Klassennamen wissen. Das is natürlich doof :/

Mfg Fips.
acetox94 ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

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 an
Gehe zu

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mermshaus factory, php klassen abhängigkeiten, factory mermshaus

Alle Zeitangaben in WEZ +2. Es ist jetzt 01:07 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum