[oop] dynamic class met static properties?
Worden er eigenlijk wel eens dynamische classes met static properties gebruikt?
Stel je hebt bijv. meerdere webshops die gebruik maken van één en dezelfde product class. En nu wil je bijv. achter de productnaam ook de naam van de webshop hebben. Is zoiets als dit dan gebruikelijk?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Is zoiets gebruikelijk?
Het product doet nu 3 dingen:
- Vasthouden gegevens over het product
- Vasthouden gegevens over de shop
- Presenteren van het product
Dat moeten dus 3 klassen worden, niet 1.
Maar waarschijnlijk is dit niet je vraag, maar gewoon weer een voorbeeldje die noch wal noch sloot raakt. Je krijgt hierdoor dus compleet verkeerde antwoorden en wij verspillen weer eens wat minuten aan reageren...
Dus ga ik op de goede gok je vraag herformuleren: Je hebt gister van Dos een nieuwe methode geleerd die gebruikt maakt van statics. Die wil je nu graag overal toepassen, maar je vraagt je af of dat eigenlijk wel goed is, die statics mengen met andere klassen.
En om dan maar meteen met de deur in huis te vallen en jouw (mijn) vraag meteen te beantwoorden: Nee, dat is niet mooi om in dit voorbeeld te doen. Dos zijn voorbeeld moet je niet overal gaan toepassen. Eigenlijk vind ik het ook helemaal niet mooi, omdat je klasse dan afhankelijk is van een init method. Zoiets moet je in de constructor plaatsen.
>> die noch wal noch sloot raakt
Kant noch wal is de uitdrukking.
>> Het product doet nu 3 dingen:
- Vasthouden gegevens over het product
- Vasthouden gegevens over de shop
- Presenteren van het product
Dat laatste doet het in ieder geval niet.
Jij doet mijn vraag af als een rare vraag, maar ik meen een dergelijke constructie weleens gezien te hebben. Als ik me niet vergis werd daarbij zelfs een heel shop-object in een static property gestopt. Nu lijkt me dat niet een heel strak plan, maar ik vraag me dus af of het wel eens voorkomt dat er dynamische classes worden gebruikt waar een statische property instaat, om wat voor reden dan ook. Komt zoiets wel eens voor of niet?
Mijn vraag heeft verder niks te maken met de init method.
>> Eigenlijk vind ik het ook helemaal niet mooi, omdat je klasse dan afhankelijk is van een init method. Zoiets moet je in de constructor plaatsen.
Dat gaat een beetje lastig bij een statische class nietwaar?
Gewijzigd op 06/05/2014 23:25:23 door Ozzie PHP
Dat doet het wel: "En nu wil je bijv. achter de productnaam ook de naam van de webshop" Het betreft hier dus hoe we het product willen presenteren op de website, namelijk doormiddel van de webshop naam en product naam. Zoiets moet dus niet afgehandeld worden in de Product klasse, die heeft al een andere verantwoordelijkheid.
>> Komt zoiets wel eens voor of niet?
Dat ligt aan het voorbeeld wat je geeft. Met dit voorbeeld, ja het komt misschien wel voor, maar het is niet goed.
>> Dat gaat een beetje lastig bij een statische class nietwaar?
Zie hier ook mijn afkeer tegen statische klassen.
Merk overigens op dat ik je helemaal niet probeerde aan te vallen, ik probeerde je 2 dingen te vertellen: 1) jou voorbeeld is geen goed OO, 2) geef geen voorbeelden, geef je werkelijke probleem
>> Het betreft hier dus hoe we het product willen presenteren op de website
Ik snap wat je bedoelt. In mijn vraag ging ik er dus vanuit dat de shopnaam een onderdeel van de productnaam is. Het wordt dus niet op deze wijze gepresenteerd, maar is gewoon de daadwerkelijke naam. En om dat te bereiken voeg je dan die statische property toe.
Anyhow. Het komt dus niet of in ieder geval niet vaak voor. Dat was het antwoord op mijn vraag.