Versio

OOP: Config doorgeven tussen objecten

Overzicht Reageren

Arian Stolwijk

Arian Stolwijk

04/03/2009 19:37:00
Quote Anchor link
Beste Mensen,

Ik zit met het volgend probleem:

Ik heb een class.
Bij deze class kan ik instellingen instellen. Die komen vervolgens in een config class of een array.

Maar deze class heeft ook 'geneste children'. Die moeten ook toegang hebben tot die instellingen. Op hun beurt hebben zij ook weer geneste subclassen, die ook toegang moeten hebben tot de instellingen.


Klein overzichtje
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
  
                                   hoofdclasse
                                       |
   |-------------------------|------|-----------------|
   child                       child               child
     |                             |                    |
|---|---|------|         |----|--|----|        |----|-----|
child child  child    child child child   child child child

Eigenlijk zijn het zelfs nog vier lagen. Maar elk object moet toegang hebben tot dat ene config object/array.

Nu kan ik, als ik een config object maak, van die config een static maken, zodat ik gewoon Layout_Config::get('key'); kan doen ofzo... maar het nadeel is dat je dan eigenlijk maar één config object kunt maken, wat dus niet echt handig is...

een tweede optie is bij de constructor van elk child de opties via een parameter meegeven, maar dat lijkt mij ook niet echt handig...

Daarom vroeg ik me af of hier niet een handig oplossing voor is...
Gewijzigd op 01/01/1970 01:00:00 door Arian Stolwijk
 
PHP hulp

PHP hulp

25/05/2012 12:50:48
Gesponsorde koppelingen:
BHosted Hosting al vanaf € 1,- per maand

Controleer nu gratis jouw domeinnaam:

  
 
Gerben G

Gerben G

04/03/2009 20:01:00
Quote Anchor link
Waarom zou je meer dan een config object willen hebben. Mijn voorkeur gaat uit naar een config object. En dan maak ik altijd gebruik van het singleton pattern
http://nl.wikipedia.org/wiki/Singleton_(informatica)
Gewijzigd op 01/01/1970 01:00:00 door Gerben G
 
Arian Stolwijk

Arian Stolwijk

04/03/2009 20:07:00
Quote Anchor link
ja oke... maar het is niet echt voor bijvoorbeeld de hele site ofzo... het zijn eigenlijk gewoon een paar parameters van het hoofdobject... die de child classes moeten kunnen benaderen..
 
Jelmer rrrr

Jelmer rrrr

04/03/2009 22:23:00
Quote Anchor link
Doorgeven via de constructor geeft meer flexibiliteit, en geeft je de mogelijkheid om je child klassen op andere plekken te hergebruiken, al dan niet met een andere, voor die plek toepasselijke, config.

Persoonlijk vind ik singleton net zo erg als globals, of eigenlijk erger. Je hebt de vervelende global state van je applicatie plots - dwz de state van het ene object heeft direct invloed op al die objecten die ermee gekoppeld zijn - en je hebt een keiharde koppeling tussen klassen. De klassen die jouw singleton klasse aanroepen bevatten de naam van die klasse. Je kan die singleton-klasse nu niet meer hernoemen of extenden, en je kan de andere klassen niet meer gebruiken zonder de singleton klasse. Dat, in combinatie met het delen van een state, levert het verplicht delen van een state, wat weer zo ongeveer neer komt op... globals.
 
Arian Stolwijk

Arian Stolwijk

04/03/2009 23:01:00
Quote Anchor link
Ik had het inderdaad eerst op de singleton manier, maar ik merkte al snel, wat Jelmer al zei, dat de hele flexibiliteit naar de knoppe ging, dus ik geef hem nu maar door via de constructor..
 



Overzicht Reageren