Why use OOP?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 3 4 5 volgende »

Vincent

Vincent

05/02/2008 19:30:00
Quote Anchor link
Hee,

Ik ben druk bezig met verschillende dingen xD
Zoals onder andere Pg en OOP
Ik had alleen ff een vraag over OOP..
Want ik zit daar al tijd over na te denken..
Het zit zo, ik wil misschien met een mmog beginnen ( gaap originaliteit, ik hoop dat het spel wel origineel wordt ) maar ik wil niet een of ander half kwaliteit kut spel maken die nooit afkomt en alles los aan elkaar hangt.

Daarom wil(de) ik goede technieken leren.
Eerst heb ik PDO geleerd toen begonnen aan OOP(nog mee bezig) en toen Pg(ook nog druk mee bezig).
Maar ik kleef steeds aan de vraag:
"Waarom wil ik nou eigenlijk OOP gebruiken, wat heeft het voor nut in een mmog ? "
Kan iemand mij hier verder mee helpen?
Ik had ook nog een ander klein vraagje: weet iemand misschien een tutorial waarin staat hoe je bijvoorbeeld een gastenboek in classes etc. moet opdelen want dat vind ik redelijk lastig.

Mvg, Vincent
 
PHP hulp

PHP hulp

20/04/2024 05:34:12
 
- -

- -

05/02/2008 19:39:00
Quote Anchor link
Op het moment dat je OO programmeert volgens het MVC model, is dat heel handig. Er zijn talloze voordelen te noemen. Op het moment dat je alleen OO programmeert, is het puur netter en overzichtelijker, en je zult code niet 10x hoeven neer te zetten.

Tip: ga je eens verdiepen in het MVC model.
 
Jan geen

Jan geen

05/02/2008 19:49:00
Quote Anchor link
Hergebruik, beter te onderhouden en het wordt eenvoudiger om samen te programmeren.
 
Frank -

Frank -

05/02/2008 19:56:00
Quote Anchor link
@Jonathan: Er bestaat nog wel meer dan alleen MVC, dat is slechts 1 van de mogelijkheden.
 
Vincent

Vincent

05/02/2008 20:01:00
Quote Anchor link
Jonathan schreef op 05.02.2008 19:39:
MVC model

Wat houd dat ongeveer in, wat is het verschil met gewoon OO ?

Jonathan schreef op 05.02.2008 19:39:
Je zult code niet 10x hoeven neer te zetten.

Als ik gewoon functies gebruik kan dat toch ook ?
 
Jelmer -

Jelmer -

05/02/2008 20:32:00
Quote Anchor link
Het is als je kast opruimen, maar dan met laden die heerlijk soepel lopen en waar gewoon veel meer in past, en waar op een wonderlijke manier ook veel meer in terug te vinden is!

juist ja

OOP doe je gewoon omdat je het prettiger vindt of niet. Je kan in C-land blijven, altijd programmeren met 'resources', dat zijn variabelen die x, y en z bevatten en waar je eigenlijk gewoon maar beter niet direct aan kan zitten zonder je functies want je hebt geen idee meer wat er eigenlijk in zit. Of je neemt een stapje verder en komt in OOP-land waar je variabele x, y en z onderbrengt in een object, net als de functies die x, y en z voor je aanpassen.

In PHP houdt OOP programmeren denk ik in eerste instantie vooral in dat je dag zegt tegen de arrays met data, en hallo tegen de objecten met data en methods. Waar de arrays in PHP de structs van C zijn, worden dat je objecten. En als bonus mag je je functies er ook nog eens bijin stoppen, en kan je objecten afdwingen als argumenten.
 
Bo az

Bo az

05/02/2008 20:59:00
Quote Anchor link
Voeg aan het lijstje van Rik maar toe: Beter overzicht, gemakkelijker wijzigen en geen dubbele code.
Overigens vergt het wel enige oefening voor je dit resultaat hebt.

Anders dan de post van Jonathan doet vermoeden hoef je niet meteen met MVC aan de gang om deze resultaten te behalen al zal het je wel helpen om je code nog beter te scheiden.
MVC is vooral handig als je bijvoorbeeld in het geval van java zowel een webUI als een SwingUI wil maken, dan kan je gewoon je controllers en models mee nemen en hoef je alleen met je views aan de gang.
 
Vincent

Vincent

05/02/2008 21:00:00
Quote Anchor link
Ok even proberen paar woorden op een rijtje te zetten

- Je hebt een klasse, dat is een soort concept, dus bijvoorbeeld een klasse gastenboek?
- daarbinnen verschillende objecten? hoe defineer je die precies, (ja ik ben noob met oop) en wat zijn het precies?
 
Danny Roelofs

Danny Roelofs

05/02/2008 21:03:00
Quote Anchor link
Ik begon met OOP op php4 met zelfs nog niet eens de intentie om alles te willen weten van OOP, maar gewoon om de eenvoudige redenen:

1.
Voornamelijk hoefde ik maar 1 bron aan te passen ipv alle andere pagina's.

2.
Zo creëerde ik een eigen functie bibliotheek waardoor ik het weer makkelijk kon hergebruiken, scheelde me tijd omdat ik dan niet telkens iets opnieuw hoefde te programmeren aan functie's omdat ik niet meer wist waar ik een bepaalde code had staan (als je 2000MB al aan webdesign en code hebt, kan het extreem lastig worden)

Als je al baat hebt met mijn bovengenoemde punten, heb je al reden genoeg om met OOP aan de slag te willen gaan.. Je moet je nu niet overrompeld voelen als je op php.net of andere tutorials kijkt waar alle ins & outs worden uitgelegd over wat allemaal mogelijk is.

Als beginner zijnde, zonder enige OOP ervaring vanuit een andere taal dan heb je misschien de neiging om er niet eens aan te willen beginnen.

En je zult na enige tijd, steeds meer lichtpuntjes zien.. bepaalde termen gaan begrijpen (in het engels klinkt het soms nogal technisch en moeilijk) maar hoe vaker je ermee bezig bent, hoe logischer het wordt en daarmee ga je een moeilijke term ineens in een ander daglicht zien.
 
Vincent

Vincent

05/02/2008 21:11:00
Quote Anchor link
Bedankt voor je mooi reactie Danny, je verteld 't echt mooi =) misschien moet je schrijver worden, of iets van psycholoog ofzo?
Je kan echt heel goed motiveren =)
Nu krijg ik er steeds meer zin in.
Zoals je zegt met die moeilijke termen dat dacht ik eerst ook met gewoon php maar bleek erg mee te vallen, zoals ik hierboven al vroeg kom ik uit een paar termen toch echt niet uit.. misschien weet jij raad ?
Gewijzigd op 01/01/1970 01:00:00 door Vincent
 
M Ypma

M Ypma

05/02/2008 21:31:00
Quote Anchor link
ok Vincent, eventjes wat duidelijkheid op een rijtje:
- een klasse is een blauwdruk van een object.
In een klasse beschrijf je dus wie je object is(naam), wat hij heeft (attributen) en wat hij kan(methods).
Als je een klasse instantieerd:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php $object = new Klasse(); ?>

Heb je dus een object. Je kunt met 1 Klasse meerdere objecten maken dus.

Dit is eigenlijk wel het basis principe. Probeer eens wat voorbeeldjes te zoeken of neem idd het gastenboek idee wat je hebt en probeer daar objecten/onderdelen in te zoeken.
 
Vincent

Vincent

05/02/2008 21:37:00
Quote Anchor link
Ah Ypma ik denk dat je me op het goede spoor hebt gezet!
Dus een klasse kan je ook zoiets bij schetsen:

Klasse = Voertuigen

object - trein
met attributen zoals: mensen_vervoeren
en methods: rijden, brandstof_verbruiken

object - auto
met attributen zoals: mensen_vervoeren
en methods: rijden, brandstof_verbruiken

etc..

en die objecten geef je dan weer in functies etc?
 
Jan Koehoorn

Jan Koehoorn

05/02/2008 21:41:00
Quote Anchor link
Het gaat bij OOP niet alleen om klasses, maar juist om de relatie tussen de klasses. De ene klasse kan overerven van een andere klasse. Hij heeft dan alle methoden en variabelen van zijn "parent" en daar kun je dan weer nieuwe variabelen en methoden aan toevoegen.

Over het algemeen begin je met een zo algemeen mogelijke klas. Daarna krijgen de erfgenamen steeds meer specifieke dingen.

Je kunt bijv een klasse 'dier' hebben. Daarvan afgeleid kun je een klasse 'zoogdier' hebben en weer daarvan afgeleid een klasse 'tijger'. Vervolgens ga je kijken welke eigenschappen specifiek bij welke klasse horen.

Een functie voortplanten () kun je in de klasse 'dier' stoppen, want dat doen ze allemaal. Een functie geef_melk () kun je in de klasse 'zoogdier' stoppen.

Je zou ook weer kunnen zeggen: alle dieren voeden hun jongen. Dan is het weer handiger om een interface 'dier' aan te maken met een blauwdruk voor de functie voeden (). Maar goed dat gaat al weer een stap verder. Eerst maar eens verdiepen in de basis van OOP.

Alvast succes!
 
Robert Deiman

Robert Deiman

05/02/2008 21:41:00
Quote Anchor link
Zelf moet ik zeggen dat ik nog niet OOP programmeer, omdat ik de logica van het bouwen daarvan nog niet helemaal snap. (Hoe zet je op de juiste manier een class en de daarin horende attributen en methods, en wat zijn de regels waar je je aan moet houden om goed OOP te programmeren)

Wat ik wel al doe, wat ook een goede voorbereiding is op het echte OOP werk is alles in functies schrijven. Het is vanaf daar (heb ik van mensen die wel met OOP werken) maar een relatief kleine stap naar OOP. Zeker als je gewend bent om "Normaal" te programmeren (gewoon zoals veel beginners dat doen) is de stap om eerst met functies te gaan werken wat kleiner. Je hebt wel al (deels) de voordelen van het OOP programmeren, omdat je functies ook gewoon kan hergebruiken.
 
Jan Koehoorn

Jan Koehoorn

05/02/2008 21:46:00
Quote Anchor link
Vincent schreef op 05.02.2008 21:37:
Ah Ypma ik denk dat je me op het goede spoor hebt gezet!
Dus een klasse kan je ook zoiets bij schetsen:

Klasse = Voertuigen

object - trein
met attributen zoals: mensen_vervoeren
en methods: rijden, brandstof_verbruiken

object - auto
met attributen zoals: mensen_vervoeren
en methods: rijden, brandstof_verbruiken

etc..

en die objecten geef je dan weer in functies etc?

De methods rijden en brandstof_verbruiken horen eerder in de klasse 'voertuig', want dat kunnen ze allemaal. De method 'mensen_vervoeren' hangt van het type voertuig af. In plaats van 'rijden' is 'voortbewegen' een betere naam i.v.m. boten en vliegtuigen enz.
 
Vincent

Vincent

05/02/2008 21:50:00
Quote Anchor link
Thanks voor de mooie uitleg Jan!
Ik zie nu idd ook wat ik fout heb gedaan!

Robert functies gebruik ik ook =) dat is ook 1 van de redens waarom ik me in OOP ben gaan verdiepen in het begin, want ik hoorde dat OOP veel functie werk is en dat vind ik goed overzichtelijk.
Nou jongens ik denk dat ik hier wel verder mee kan, ik ga zo snel mogelijk een gastenboekje boven in OOP om te kijken of ik het snap, daarna post ik hem hier in dit topic en kunnen jullie je kritiek er lekker overheen laten gaan!

Bedankt voor de reacties,
Groeten Vincent
 
Jan Koehoorn

Jan Koehoorn

05/02/2008 21:55:00
Quote Anchor link
Hier nog ff een voorbeeldje van die 'interfaces' waar ik het net over had. Een interface kun je zien als een blauwdruk van een klasse. In een interface bepaal je alvast de naam van de algemene functies die je nodig hebt. In klasses die afstammen van zo'n interface kun je dan elke functie voor die klasse specifiek maken. Dus in de interface staat bijvoorbeeld 'voeden' als functie, en in de afstammelingen staat in de functie 'voeden' iets als 'melk geven', of 'vis voeren'.

Hieronder een voorbeeld:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
    interface mens {
        public function ontharen ();
    }

    
    class man implements mens {
        private $geslacht;
        public function __construct () {
            $this->geslacht = 'man';
        }

        public function ontharen () {
            return '<p>Ik ben aan het scheren</p>';
        }
    }


    class vrouw implements mens {
        private $geslacht;
        public function __construct () {
            $this->geslacht = 'vrouw';
        }

        public function ontharen () {
            return '<p>Ik ben aan het waxen</p>';
        }
    }

    
    $m = new man ();
    $v = new vrouw ();
    echo $m->ontharen ();
    echo $v->ontharen ();
?>
 
Robert Deiman

Robert Deiman

05/02/2008 21:56:00
Quote Anchor link
@Jan

Elk voortuig kan ook mensen vervoeren voor zover ik weet. Al is het alleen de chauffeur.. :) Volgens mij kan dat wel bij alle voertuigen. Alleen verschillende voertuigen vervoeren verschillende aantallen mensen.

Maar is het dan niet handig om een class vervoer te maken, waaronder je de methods: personen, goederen enz. (wat maar mogelijk is, containers bijvoorbeeld bij schepen) plakt?

Zoals ik al zei ben ik niet echt bezig met OOP, maar probeer er wel wat van mee te pakken en wat te leren van topics als deze
 
Danny Roelofs

Danny Roelofs

05/02/2008 21:59:00
Quote Anchor link
Wat betreft MVC, ik vond dit zelf wel een handige tutorial

Men noemt MVC een design pattern, de eerste keer dat ik iets las over design patterns dacht ik aan iets heel anders.. maar zo ben ik, ik verwacht altijd het ergste ;-)

Maar:

Model, een model kun je net zo zien als een radio bestuurbare auto. De auto heeft een accu, heeft een motor, een stuur inrichting, een ontvangst en zend unit, eventueel verlichting.. enz..

View, een view is niet meer het tonen van informatie, staan de lampjes aan?, hoe vol is de accu, heb ik communicatie?.. enz..

Controller:
De radio grafische besturing die je in de hand houd, die stuurt commando's door naar je auto. Je drukt op een knop, de wagen start.. en de lampen gaan aan.


Dus als je op de Controller, een knop drukt... stuur je 1 commando, maar zal in het Model 2 functie's aan roepen (motor start, licht aan) en via View wordt er dan op je radio grafische bediening een aantal lampjes aan gezet om aan te geven dat de motor draait en de lampen aan staan.

Goed, zo zou je MVC kunnen zien als concept, maar dit is wel mijn visie (ben altijd nerveus voor de betere OOPérs die het soms beter weten ;-) )



Toevoeging:

De relatie tussen MVC en OOP is eigenlijk gewoon de manier waarop je OOP gebruikt, MVC is geen functie van OOP, het bepaald niet hoe OOP werkt, maar gewoon hoe je vorm geeft aan je Class structuur.

Dus:

Class AutoModel
{
functie 1 : Motor aan
(start motor)
-> toon lampje, motor aan. (AutoView)
functie 2 : Lichten aan.
(lichten aan)
-> toon lampje, licht aan (AutoView)

}

Class AutoView
{

functie 1 : Lampje motor, aan.
functie 2 : Lampje lichten, aan.
}

Class AutoController
{
functie : druk deze knop om motor te starten, lichten aan te doen
-> roep de twee functie's aan van het AutoModel


}

Dit is natuurlijk geen echte manier van OOP nu, ik visualiseer dit nu eventjes zo voor je.
Gewijzigd op 01/01/1970 01:00:00 door Danny Roelofs
 
Jan Koehoorn

Jan Koehoorn

05/02/2008 22:04:00
Quote Anchor link
@ Robert: okee, maar laten we even mierenneukerig doen en een onbemand ruimteschip op een missie naar Mars sturen ;-) Die beweegt zich voort, verbruikt brandstof, enz.

Als method zou ik niet personen of goederen maken.

Ik zou bijv een klasse per voertuig maken, dus een klasse "boot". Als je dan een klasse 'cruiseschip' laat erven van de klasse 'boot', dan zou die klasse 'cruiseschip' een membervariabele 'personen' kunnen hebben, als array. Die array kun je dan vullen met variabelen van de klasse 'persoon'.
 
Robert Deiman

Robert Deiman

05/02/2008 22:08:00
Quote Anchor link
Aha, je gaat nu een stukje verder erin. Maar ik snap je wel daarin dan, door ook in dit soort topics mee te denken en te doen krijg ik zelf ook een beter en completer beeld van het OOP gebeuren.
Bedankt voor de verdere uitleg.
 

Pagina: 1 2 3 4 5 volgende »



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.