OOP functie verantwoordelijkheden
Ozzie PHP
11/02/2013 14:21:06Stel ik heb een functie get($key)... ik moet een key invullen en ik krijg een waarde uit de class property $data terug.
Nu vraag ik me af... stel ik wil alles ophalen wat in de class property $data zit, wat is dan mooier/beter?
Diezelfde functie get($key) gebruiken, maar de $key optioneel maken? Dus get($key = '') in plaats van get($key)? Als ik een key invul, krijg ik de bijbehorende waarde terug en als ik geen key invul de complete inhoud van $data?
In de praktijk:
$key = get('mijn_key');
$alle_data = get();
Of is het beter om een extra functie getAll() te maken?
In de praktijk:
$key = get('mijn_key');
$alle_data = getAll();
Zijn hier "regels" voor in OOP?
Nu vraag ik me af... stel ik wil alles ophalen wat in de class property $data zit, wat is dan mooier/beter?
Diezelfde functie get($key) gebruiken, maar de $key optioneel maken? Dus get($key = '') in plaats van get($key)? Als ik een key invul, krijg ik de bijbehorende waarde terug en als ik geen key invul de complete inhoud van $data?
In de praktijk:
$key = get('mijn_key');
$alle_data = get();
Of is het beter om een extra functie getAll() te maken?
In de praktijk:
$key = get('mijn_key');
$alle_data = getAll();
Zijn hier "regels" voor in OOP?
PHP hulp
28/11/2024 08:59:17Wouter J
11/02/2013 14:46:22Quote:
Zijn hier "regels" voor in OOP?
OO heeft geen regels, slechts design patterns met richtlijnen en basisprincipes. En die hebben hier niet mee te maken.
Het is dus wat jij mooier vind. Ik houd van verschillende methods, sommige combineren weer alles.
Ik ga zelf voor meerdere getters omdat ik dat duidelijker vind. Als je $obj->get() aanroept dan denk ik, 'wat betekend dat nou?'. Je moet dan in de code ga kijken om door te krijgen dat je dan alle data krijgt.
Als je $obj->getAll() aanroept dan weet je al: Ha, dat betekend dat we alles krijgen!
Qua functie verantwoordelijkheden is er in beide gevallen niks mis, de functie blijft voor het ophalen van data. Of dat er nou 1, 2, 3 of alle data is maakt geen zak uit.