Tijdens het laden van een User class set ik eenmalig de volledige naam van de User zodat ik deze als volgt kan tonen.

echo $user->getFullName();

Deze volledige naam wordt tijdens het laden/initialiseren van de class gegenereerd op basis van de voornaam, tussenvoegsel en achternaam en vervolgens opgeslagen als class property.

Nu vraag ik me iets af. Stel dat ik via een setter de voornaam wijzig van Jantje naar Pietje ...

$user->setFirstName('Pietje');

... en ik zou nu de volledige naam weer ophalen, dan staat daar nog Jantje in. Immers, de volledige naam is niet gewijzigd, enkel de voornaam.

Mijn vraag is hoe je nu met zo'n "afhankelijke" waarde om moet gaan.

Ik denk dat er 2 mogelijkheden zijn:

1) Zodra ik de voornaam, tussenvoegsel of achternaam wijzig ga ik de volledige naam opnieuw genereren en overschrijf ik de bestaande class property.

2) Ik maak niet langer gebruik van een class property om de volledige naam op te slaan. In plaats daarvan genereer ik de volledige naam op basis van de voornaam, tussenvoegsel en achternaam telkens opnieuw als de functie wordt aangeroepen.

Beide opties lijken me mogelijk, maar is een van beiden wellicht logischer?
Ozzie PHP op 24/02/2019 18:25:09

[…] ik probeer je duidelijk te maken waarnaar ik op zoek was. Namelijk of er in bepaalde omstandigheden (afhankelijkheid tussen variabelen) bepaalde richtlijnen/technieken/patterns zijn die je kunt volgen.

Het observer pattern is bedoeld voor soortgelijke scenario's met afhankelijkheden tussen objecten. Bij een wijziging van de toestand van een subject kunnen observers van dat subject besluiten wat ze met die wijziging doen. Het subject zelf doet dat niet — dus niet bij een User->setFirstname() bijvoorbeeld — aangezien het subject nooit weet welke wijziging gevolgen voor andere objecten heeft (en eigenlijk niet eens door welke objecten het wordt gebruikt).

Je vindt dit design pattern ook in de Standard PHP Library (SPL) in de vorm van de SplObserver en het SplSubject.
Thanks voor de toevoeging Ward. Interessant dat zoiets dus wel bestaat. Voor mijn relatief simpele vraagstuk lijkt zo'n observer me niet noodzakelijk en hanteer ik de oplossing zoals Rob die even hiervoor beschreef. Echter, bij complexere vraagstukken kan dit in de toekomst wel eens van pas komen.
Ozzie PHP op 24/02/2019 18:25:09

afhankelijkheid tussen variabelen

Ward van der Put op 25/02/2019 08:20:58

afhankelijkheden tussen objecten


Dit bestond in principe al in de vorm van callbacks/hooks? Dit is niet echt iets nieuws? Het enige wat wellicht is veranderd is de vorm, maar het principe is min of meer hetzelfde gebleven: op het moment dat er iets gebeurt is dit een "trigger" dat er ergens (anders) nog wat werk moet worden verzet.

De vraag is natuurlijk ook wanneer je meer deze kant van event driven programming op gaat welke taal/techniek je hiervoor gebruikt...

Reageren