Extend of parameter voor class?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Niek s

niek s

20/07/2010 16:30:34
Quote Anchor link
Goedenmorgen,

Ik heb een classe, Controller genaamd, welke in 2 situaties gespawned wordt:
- In het geval dat er via een browser de applicatie bezocht word
- In het geval dat de cronjob (ja die is echt nodig) die nodig heeft.

Nou moet de controller in de twee gevallen net ietsje anders constructen.

Vandaar dus mijn vraag. Wat is de netste OOP manier in jullie ogen? Graag met argumentatie ;-)
Zelf twijfel ik tussen:
Het extenden van de Controller classe om vervolgens voor de 2 situatie een andere class hebben, die dan weer parent::__construct doen, en daarna hun eigen net iets andere situatie doen.
Of:
Een if/else'je in de constructor, en een parameter in de constructor waarin wordt aangegeven hoe deze gespawned wordt...

Het is beide niet veel werk natuurlijk, en maakt in mijn ogen niet erg uit, maar ik vind het een boeiende vraag en zou jullie welles willen horen =)

Groetjes
 
PHP hulp

PHP hulp

21/11/2024 19:36:07
 
Wesley Overdijk

wesley Overdijk

20/07/2010 16:35:42
Quote Anchor link
Ik zou voor beide methodes een ander object gebruiken, en bij het aanroepen een van beide aanroepen. Je extend idee dus. (Al zou ik al nooit een controller rechtstreeks laten benaderen zonder tussenstappen)
 
Jelmer -

Jelmer -

20/07/2010 16:36:52
Quote Anchor link
Ik zou de eerste het netst vinden denk ik, omdat je dan je algemene specifieke controller weer scheidt van je specifieke specifieke controller die specifiek voor die specifieke situatie is, wat vrij specifiek is.

If-elsje is makkelijker, en doet me meer denken aan #ifdef preprocessor syntax in bijv. C++. Argument hier tegen is vooral dat je class afhankelijk maakt van een globale variabele of functie van buitenaf (eentje die aangeeft wat de situatie is) maar het gaat al om een vrij specifieke controller die je waarschijnlijk alleen maar in dit project gebruikt, dus afhankelijkheid als tegenargument zou ik wegwuiven.
 
Niek s

niek s

20/07/2010 17:09:44
Quote Anchor link
Jelmer rrrr op 20/07/2010 16:36:52:
Ik zou de eerste het netst vinden denk ik, omdat je dan je algemene specifieke controller weer scheidt van je specifieke specifieke controller die specifiek voor die specifieke situatie is, wat vrij specifiek is.

If-elsje is makkelijker, en doet me meer denken aan #ifdef preprocessor syntax in bijv. C++. Argument hier tegen is vooral dat je class afhankelijk maakt van een globale variabele of functie van buitenaf (eentje die aangeeft wat de situatie is) maar het gaat al om een vrij specifieke controller die je waarschijnlijk alleen maar in dit project gebruikt, dus afhankelijkheid als tegenargument zou ik wegwuiven.


Klinkt logisch. Ik denk dat ik dan dus inderdaad de controller classe ga extenden voor die situatie.

Mijn visie is wel: het is inderdaad een specifieke toepassing, dus herbruikbaarheid is niet relevant. Toch wil ik ook specifieke code erg duidelijk en gestructureerd houden. Als het nou om een classe Item ging, die een CD en DVD was had ik meteen al een extend gedaan. Een CD en een DVD extend. Maar in dit geval gaat het om 1 enkel ander gedrag.
Mijn argument voor extend is dat de "normale" controller geen baat heeft bij extra dingen, en de cronjob controller wel. Dus is het "vies" om die code te hebben in een situatie waarbij je die niet gebruikt.

Bedankt, Jelmer!
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.