Oprettet fre. d. 29. maj 2009 kl. 00:02:59

nicolailissau
nicolailissau (5.435 point. Point ude: 360)

OOP? Ja, jeg kan bruge det til at forklare delene på en cykel tak! Men hvad mere?

Hej Eksperter

Sidder og læser noget fra denne bog:
http://books.google.com/ (...),M1
Ganske gode forklaringer og let overskueligt. Men mangler lidt perspektiv. Har nu efterhånden læst lidt omkring på OOP, men har stadig ikke fundet fidusen idet. Eksemplerne er altid:
"Din klasse er en computer", "Din klasse er en cykel" og dertil hører enten en masse hardware eller en masse cykeldele.

Men det hjælper ikke på min forståelse.

Er godt med på ideen i OOP, men kan ikke se det smarte. Er der en eller flere der vil vise mig et kodeeksempel fra deres egen brug af OOP, hvor jeg kan få lidt brugbar forståelse :)

På forhånd tak,
Nicolai Lissau

Skrevet fre. d. 29. maj 2009 kl. 00:29:32| #1

hoeks
hoeks (14.086 point)
www.joomlatutorials.dk
Jeg har kodet java i et år nu, efter tidligere ikke at have skrevet objektorienteret. Jeg er begyndt at kunne se fordelen i OO, og dermed er det blevet meget sjovere at udvikle i.
Specielt synes jeg det, at man kan 'polymorphe' er ret fedt. Men da jeg er en ret dårlig programmør, så kan du jo ikke bruge mit besyv til meget. Måske kan du dog bruge disse artikler til at få større indsigt.

Her er en sammenligning imellem FP og OOP:
www.inf.uos.de/elmar/talks/oo-vs-fp.ps.gz+FP+vs+oop&cd=8&hl=da&ct=clnk&gl=dk" title="http://209.85.229.132/search?q=cache:cKjnzzp7j2MJ:www.inf.uos.de/elmar/talks/oo-vs-fp.ps.gz+FP+vs+oop&cd=8&hl=da&ct=clnk&gl=dk" target="_blank">http://209.85.229.132/ (...)

Polymorping:
http://www.proceedings2005.imcsit.org/ (...)




Og her er endnu en artikel. I kommentarerne bliver der diskuteret lidt frem og tilbage - måske kan det hjælpe dig på vej:

http://blog.objectmentor.com/ (...)

Skrevet fre. d. 29. maj 2009 kl. 02:20:29| #2

arne_v
arne_v (1.005.618 point)
Nogle bud på fordele:

1)  den tætte sammenhæng mellem koden og virkeligheden kan give et mere logisk design som er nemmere at forstå

2)  encapsulation hvor implementationen skjules gør det langt nemmere at rette i kode uden at lave ulykker

Polymorphisme hører ind under #2. Men mindst lige så vigtig er muligheden for at erklære noget for private.

Skrevet fre. d. 29. maj 2009 kl. 02:22:54| #3

OOP er først og fremmest et redskab til at holde styr på din egen kode. Der er ikke noget du kan lave med OOP som du ikke kunne have lavet uden, du kan gøre det på en lidt anden måde som muligvis er mere overskuelig.

Som ny programmør får man intet ud af OOP, primært fordi det ikke er noget problem at holde styr på mindre begynderopgaver. Af samme grund ser lærebogseksemplerne ofte temmelig søgte ud, man kan simpelthen ikke konstruere en opgave som både er simpel nok til at være et godt eksempel og samtidig kompleks nok til at det i praksis giver mening at gøre noget specielt ud af OOP delen.

Der er mange meninger om emnet, men jeg synes at der er nogen grund til at bruge mere OOP end nødvendigt. Bare husk at muligheden er der, brug de dele du synes passer ind i en opgave og lad resten ligge til en anden gang.

Skrevet fre. d. 29. maj 2009 kl. 02:36:43| #4

arne_v
arne_v (1.005.618 point)
Det er faktisk en vigtig pointe. OOP's fordele over PP viser sig først i større applikationer.

Vi kan diskutere om skellet går ved 2000 linier kode eller 10000 linier kode.

Men OOP er ikke specielt genialt til hello world.

Skrevet fre. d. 29. maj 2009 kl. 02:45:57| #5

Lige en rettelse til mit indlæg:

Der er mange meninger om emnet, men jeg synes ikke at der er nogen grund til at bruge mere OOP end nødvendigt.

Skrevet fre. d. 29. maj 2009 kl. 08:49:11| #6

OOP er bare en smartere måde at lave genanvendelig kode på, der skal lette dit arbejde.

Du efterspørger et eksempel fra vores egen kode, som kan give dig et bedre indblik.

Du kan se mit databaselag (den klasse jeg har skrevet til at håndtere mine databasekald) her:
http://pastebin.com/ (...)

Det forudsættes i mit objekt at du enten har nogle konstanter der angiver dine MySQL oplysninger eller selv angiver dem ved instancieringen.

Eksempler på brug kan findes her:
http://pastebin.com/ (...)

Grunden til at jeg har lavet dette abstraktionslag var for at lette processen for mig selv ved databasekald og give mig mulighed for indføre nogle design patterns som kunne bruges med de andre objekter.

OOP er smart fordi objektet er genanvendeligt (særligt fra PHP5 er det blevet rigtig godt). Og når du først har prøvet at andvende et objekt og opdaget hvordan simpelt struktureret kode kan gøre det nemt for dig at løse opgaver og tilrette kode, vil du sikkert se lyset.

Skrevet fre. d. 29. maj 2009 kl. 08:51:34| #7

j4k0b
j4k0b (13.203 point)
Objektorienteret programmering gælder langt hen ad vejen om at programmerer virkelighedens arbejdsgange ind i dit program, på en måde så det ligner virkeligheden. Det giver ikke så meget mening at programmere en cykel, men hvis du er ved at lave en webshop så har du mange elementer (objekter) der skal repræsentere noget fra den virkelige verden, eksempelvis én ordre, én kunde, ét produkt osv. Når du skriver disse klasser laver du samtidig de egenskaber og funktioner det pågældende objekt stiller omverdenen til rådighed for at manipulerer med sig.

Du siger du forstår ideen bag OOP men ikke kan se det smarte i det. Mit gæt er at du har gjort dig fortrolig med nogle mindre eksempler der kort ridser lidt generelt op. Der er dog mere i det end cykler.

Hvis det er noget der har fanget din interesse, og du er typen der kan sætte sig ned og læse en større omgang abstrakt design-filosofi, så vil jeg anbefale dig at købe denne lærebog fra Datamatiker- og Dataloguddannelsen:

Objektorienteret analyse & design
ISBN-10: 8777511530
ISBN-13: 9788777511530
Pris: cirka 400 kroner

http://www.saxo.com/ (...)

Skrevet fre. d. 29. maj 2009 kl. 10:40:38| #8

nicolailissau
nicolailissau (5.435 point)
Mange tak for svar! Der fik jeg det afklaret, ikke mindst fordi jeg startede på at orientere min mysql query.. Hvilket så jo var et godt formål.

Da jeg oprettede spørgsmålet igår gik det ret stærkt (i frustrationens bitre arme) og jeg kan se jeg har fået lagt sølle 30 point. Men jeg vil bede j4c0b, repox og arne_v om at smide et svar.

Mange tak for den detaljerede afklaring.

Skrevet fre. d. 29. maj 2009 kl. 10:56:07| #9

Jamen, held og lykke med OOP ;)

Skrevet fre. d. 29. maj 2009 kl. 12:16:56| #10


Skrevet fre. d. 29. maj 2009 kl. 13:07:38| #11


Skrevet fre. d. 29. maj 2009 kl. 14:46:30| #12

nicolailissau
nicolailissau (5.435 point)
6 point :) arghh.. Vær venlige at smide et svar i denne post:
http://www.eksperten.dk/ (...)
Hjælp skal belønnes.

Skrevet fre. d. 29. maj 2009 kl. 15:15:18| #13

arne_v
arne_v (1.005.618 point)
Den rigtige holdning !

Bemaerk dog at der sammenlagt kun maa uddeles 200p for et spoergsmaal.

Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   

   

Seneste spørgsmål

HTTP Post XML og modtag svar

Oprettet den 10. februar 2012 kl. 17.55
mrkaynex giver 200 point for svar | Giv et svar »

Inspion Economy søger en dygtig programmør, som kan...

Oprettet den 10. februar 2012 kl. 16.09
Kathja giver 15 point for svar | Giv et svar »

Isolere specifik kode.

Oprettet den 10. februar 2012 kl. 13.16
mhaahr2 giver 200 point for svar | Giv et svar »

Seneste guides

Installer win 7
Den gode bruger


   




Tips & Tricks fra PC World

Teaser billede

Her er fem sjove danske websider du skal kende

Trænger dine lattermuskler til en omgang fitness på dansk? Vi viser vej til fem websider fyldt med humor og vanvittig satire.


Anmeldelser fra PC World

Teaser billede

Test: Denne super-tablet er iPads hårdeste konkurrent

Eee Pad Transformer Prime er frygtindgydende med sin quadcore processor og evne til at trylle sig om til bærbar. Apple bør kigge i bagspejlet, for Asus' tablet-pc kommer buldrende - og gør det...


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Nu kan du snart hente Windows 8

Den nye offentlige betaversion af Windows 8 er klar i denne måned.


Nyheder fra Computerworld

Teaser billede

Måske snart slut med Androids helt store problem

Android-platformen har længe været plaget af et særligt problem. Men måske er problemet nu ved at være elimineret.


Kurser
Samarbejdspartnere

Udgiver · © 2012 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger