OOP definitie

Gestart doorJenner9 reacties20 weergaven

10 berichten · pagina 1 van 1

Jenner

Lid · Topicstarter

Berichten
1.544
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Hallo,

Ik heb een aantal websites doorzocht en een aantal dingen tegen. Het gaat mij vooral om de definitie van OOP. Zo las ik dat je het beste elke validatie als aparte class kunt aanmaken. Dus bijvoorbeeld class: Validate_Username. En elke apart soort gebruiker een aparte class heeft dus bijvoorbeeld: User_Vip. Is dit handiger of moet ik bijvoorbeeld gewoon 1 class maken: validate met methods als checkUsername of checkPassword

Wat is handiger?
0
Berichten
3.314
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
OOP staat voor object orientated programming.

Dat wil zeggen, je hebt een object, zeg User.

Die omschrijf je met een class, die je ook user noemt. Daarin zet je alles wat het object moet kunnen, dus, inloggen, registreren, dat soort dingen.

Een admin is een user maar heeft nog wat extra dingetjes.

Daarvoor maak je de class adminUser o i d,

maar het blijft het object user dus kun je doen, $ user = new adminUser();

Dit is één aanpak.

Wat je wel moet weten is dat je object altijd een object moet zijn in het echt, dus gebruiker, of forum, of nieuws. De, het, een. Maak dus geen aparte class voor validate_username maar doe deze oftewel in de user class of in een validator die alles valideert.
0
Jenner

Lid · Topicstarter

Berichten
1.544
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Kyron schreef:
OOP staat voor object orientated programming.
Dat wil zeggen, je hebt een object, zeg User.

Die omschrijf je met een class, die je ook user noemt. Daarin zet je alles wat het object moet kunnen, dus, inloggen, registreren, dat soort dingen.

Een admin is een user maar heeft nog wat extra dingetjes.

Daarvoor maak je de class adminUser o i d,

maar het blijft het object user dus kun je doen, $ user = new adminUser();

Dit is één aanpak.

Wat je wel moet weten is dat je object altijd een object moet zijn in het echt, dus gebruiker, of forum, of nieuws. De, het, een. Maak dus geen aparte class voor validate_username maar doe deze oftewel in de user class of in een validator die alles valideert.

Dit spreekt eigenlijk een aantal dingen tegen die ik in deze tut heb gelezen: http://www.phphulp.nl/php/tutorial/overig/oop-beginnershandleiding-php5/701/foute-denkwijze/1839/
0
Berichten
3.314
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Nou, om te beginnen, classes is niet meteen OOP. Het gaat om de denkwijze dat je alles via objecten en classes bestuurt en dat deze ook goed zijn gebouwd. anders was het Object Programming zijn, je moet wel Orientated zijn in je code.

Zijn noemen inderdaad een klasse Gastenboek, wat een goed idee is voor zoiets.

Het is geen ramp om reactie bij gastenboek te zetten omdat je daar altijd reacties nodig hebt. Let wel op met dingen als getAantalPosts want dat hoort weer bij User.

Quote:
Veel objecten bestaan echt maar uit maximaal 100 regels, meestal een stuk minder.

Dit is volkomen onzin omdat als je het fatsoenlijk doet, je ook alles met comment, @var etc correct aangeeft voor documentatie.

Verder klopt die tut voor t grote gedeelte yummie
0
Jenner

Lid · Topicstarter

Berichten
1.544
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Maarf het gaat mij vooral om of je validate_username apart doet of 1 class met validate. Met methods als username()
0
Jenner

Lid · Topicstarter

Berichten
1.544
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Bump bloos
0
Berichten
3.314
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
1 class dus want een validate_username is niks. Noem hem validator of iets dergelijks.
0
Jenner

Lid · Topicstarter

Berichten
1.544
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Kyron schreef:
1 class dus want een validate_username is niks. Noem hem validator of iets dergelijks.
User_Transaction dus wel?
0
Rik

Lid

Berichten
18.393
Reputatie
0
Punten
0,04
Lid sinds
Laatst gezien
Jep, alleen is dat meer een uitbreiding op je user-classe. Je zou dus je user-classe een functie mee kunnen geven die een transaction object terug geeft. Je krijgt dan zon soort code:

$user->newTransaction($var)->getStatus();

Waarbij de getStatus van User_Transaction afkomt, maar de newTransaction van de User class afkomt

public function newTransaction($transId)
{
    return new User_Transaction($transId);
}


Om maar een simpel voorbeeld te geven.

Zo blijft je code leesbaar, makkelijk aanpasbaar en vooral makkelijk herbruikbaar in eventuele andere projecten. Iets wat het doel van OOP programmeren onder andere is.
0
Jenner

Lid · Topicstarter

Berichten
1.544
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Rik schreef:
Jep, alleen is dat meer een uitbreiding op je user-classe. Je zou dus je user-classe een functie mee kunnen geven die een transaction object terug geeft. Je krijgt dan zon soort code:

$user->newTransaction($var)->getStatus();

Waarbij de getStatus van User_Transaction afkomt, maar de newTransaction van de User class afkomt
public function newTransaction($transId)
{
    return new User_Transaction($transId);
}


Om maar een simpel voorbeeld te geven.

Zo blijft je code leesbaar, makkelijk aanpasbaar en vooral makkelijk herbruikbaar in eventuele andere projecten. Iets wat het doel van OOP programmeren onder andere is.

Ow, die zal ik onthouden wink Dat is wel handig biggrin Zal ik meenemen wink
0

Jouw reactie

Deel je idee, stel een vraag of help een ander verder.

Editor laden…

Praat mee met de One2xs-community.

Inloggen om te reageren