Wederzijdse dependency of niet?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

-Jens -

-Jens -

20/09/2013 13:36:10
Quote Anchor link
Dag Iedereen,

Ik zit met een vraag over OO ontwerp. Stel nu dat ik een loginsysteem heb dat bestaat uit gebruikers. Maar elke gebruiker behoort tot één of meer groepen. Dan maak ik een user klasse en een group klasse. Maar welke relatie maak ik dan? Ik wil dat als ik een "group" laad, ik zijn "users" krijg. Maar als ik een "user" laad, ik ook zijn "group" objecten krijg. Maar stel nu dat ik een "group" object laad. Dan laadt die ook zijn "users" en die "users" laden op hun beurt weer de "groups" waar zij instaan. En die "groups" laden op hun beurt weer hun "users" en zo kom je eigenlijk in een cirkel terecht. Hoe los ik dit op?
Gewijzigd op 20/09/2013 13:36:49 door -Jens -
 
PHP hulp

PHP hulp

27/11/2024 21:05:07
 
Ward van der Put
Moderator

Ward van der Put

20/09/2013 14:31:40
Quote Anchor link
Waarom moet alles onmiddellijk automatisch geladen worden? Een new Group hoeft niet via de constructor alle users te laden; dat kan ook later met een Group::getUsers(). Dat is véél efficiënter. Je gaat toch niet alle users laden als je bijvoorbeeld alleen maar de naam van de group wilt aanpassen?

Zit een new User automatisch meteen in een group? Dat hoeft niet noodzakelijk. Je kunt een User-object bijvoorbeeld gebruiken bij het openen van een account. Pas als dat succesvol is afgerond, is duidelijk in welke group de user thuishoort.
 
-Jens -

-Jens -

20/09/2013 14:34:01
Quote Anchor link
Dus jij zou geen Group-objecten opslaan in een member van User?
 
Erwin H

Erwin H

20/09/2013 14:48:03
Quote Anchor link
Het kan wel, maar waarom zou je het automatisch doen? In 99 van de 100 gevallen heb je waarschijnlijk alleen de groep namen nodig en helemaal niet alle users die daarin zitten (en andersom). Dus waarom zou je dat automatisch willen doen? Kost alleen maar tijd en resources.
 
Ward van der Put
Moderator

Ward van der Put

20/09/2013 14:54:11
Quote Anchor link
-Jens - op 20/09/2013 14:34:01:
Dus jij zou geen Group-objecten opslaan in een member van User?

Het kán wel, maar ik zou het (a) niet automatisch doen en (b) nooit met een compleet gevulde group met alle data en andere toeters en bellen. Je kunt bijvoorbeeld een kale class Group gebruiken met het hoogst noodzakelijke en daaraan een class GroupAdministration extends Group toevoegen voor functionaliteit zoals het tonen van alle users, het wijzigen van de group-rechten, enzovoort.

Verder is beginnen met één user behoort tot één group in de praktijk ook wel eens iets waarvan je achteraf spijt kunt krijgen: gebruikers kunnen tot meerdere groepen behoren.
 
-Jens -

-Jens -

20/09/2013 15:11:38
Quote Anchor link
@Erwin: dus jij zou niet eens met Group-objecten werken, of versta ik dat verkeerd?

Toevoeging op 20/09/2013 15:13:12:

@Ward:
-Jens - op 20/09/2013 13:36:10:
Maar elke gebruiker behoort tot één of meer groepen.
 
Erwin H

Erwin H

20/09/2013 15:43:07
Quote Anchor link
Waarom lees je nu niet gewoon? Zowel Ward als ik zeggen dat je het gewoon niet automatisch in moet laden! Welk objecten je allemaal maakt moet je helemaal zelf weten.
 



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.