passero
Legacy Member
IK maak me zopas een bedenking over het gebruik van getters en setters binnen een OO taal.
IK heb altijd geleerd dat je die moet gebruiken om de variabelen af te schermen en om in die getters en setters logica te schrijven om uw data consistent te houden zoals controle of uw data binnen een bereik valt, of de data niet leeg is,...
Als ik een object maak, maak ik elke var automatisch private en schrijf ik er automatisch een getter en setter voor. Meestal doen die niets meer dan de waarde binnen het object opvullen of teruggeven. Weinig logica dus
Ik krijg dan soms de opmerking van mensen die mijn code lezen "waarom al die code, zet die toch gewoon public". Ik weiger dat altijd te doen want soms moet er dan wel logica inkomen en dan pas ik gewoon mijn methode aan en het is opgelost, heel weinig werk dus. Maar als je die var eerst public hebt gezet, dan moet je het gehele project overlopen en aanpassen waar nodig... niet echt handig.
Ook is het niet echt volgens de regels van OOP om variabelen public te zetten.
Ik merk ook dat grotere projecten of bekende projecten dit niet toepassen zoals het moet. Zo heb ik me de opmerking gemaakt bij de FCKEditor. ALs je daar een instantie van maakt en je wil het basePath instellen moet je gewoon:
$editor->basePath = ... doen ivp $editor->setBasePath($path) terwijl ik het logisch zou vinden om hier een setter te gebruiken omdat er toch een controle moet zijn of het path bestaat.
Ligt dat nu aan mij, dat ik teveel de regel wil toepassen of ligt het aan de andere mensen?
IK heb altijd geleerd dat je die moet gebruiken om de variabelen af te schermen en om in die getters en setters logica te schrijven om uw data consistent te houden zoals controle of uw data binnen een bereik valt, of de data niet leeg is,...
Als ik een object maak, maak ik elke var automatisch private en schrijf ik er automatisch een getter en setter voor. Meestal doen die niets meer dan de waarde binnen het object opvullen of teruggeven. Weinig logica dus
Ik krijg dan soms de opmerking van mensen die mijn code lezen "waarom al die code, zet die toch gewoon public". Ik weiger dat altijd te doen want soms moet er dan wel logica inkomen en dan pas ik gewoon mijn methode aan en het is opgelost, heel weinig werk dus. Maar als je die var eerst public hebt gezet, dan moet je het gehele project overlopen en aanpassen waar nodig... niet echt handig.
Ook is het niet echt volgens de regels van OOP om variabelen public te zetten.
Ik merk ook dat grotere projecten of bekende projecten dit niet toepassen zoals het moet. Zo heb ik me de opmerking gemaakt bij de FCKEditor. ALs je daar een instantie van maakt en je wil het basePath instellen moet je gewoon:
$editor->basePath = ... doen ivp $editor->setBasePath($path) terwijl ik het logisch zou vinden om hier een setter te gebruiken omdat er toch een controle moet zijn of het path bestaat.
Ligt dat nu aan mij, dat ik teveel de regel wil toepassen of ligt het aan de andere mensen?

en anderen vallen dan weer terug op sommige gewoonweg ridicule oop toevoegingen van php zelf en nog anderen overdrijven in hun oop gebruik voor php omdat het cool & nieuw is.
.
?