Avatar billede madsleejensen Nybegynder
19. juli 2007 - 20:26 Der er 6 kommentarer og
1 løsning

Object Oriented Programming.

Hej derude.

nu har jeg efterhånden arbejdet et godt stykke tid, med at lave mine  applicationer så OO som muligt,
har dog et spørgsmål, som godt kan virke lidt mærkeligt kommende fra en person der lige har sagt han har arbejdet et godt stykke tid med OOP.

Spørgsmålet er simpelt:

Arrays VS egne Klasser, til simpel data håndtering.

lad mig tage udgangs punkt fra en klasse jeg bruger til at håndtere Configs in en application.

jeg har klassen

Config {

}
Avatar billede madsleejensen Nybegynder
19. juli 2007 - 20:33 #1
"kom til at sende lidt før tid ;)"

har klassen

"Config"

jeg har en public function set($name,$value).
som simpelt smider $this->array_configs[$name] = $value;

som i kan se smider jeg bare name som key og giver den value efter argument.

hvornår ville det være bedre at lave en klasse som f.eks

ConfigItems

sende værdierne til objectet istedet for gemme referencens i array'et istedet for bare valuen.
og derved senere hen nemt kunne udvide ConfigItems til at kunne mere end bare indeholde en simpel argument værdi ?

har lidt svært ved at forklare mig, det er nok derfor jeg poster her fordi jeg ikke helt kan takle den inde i hovedet :)
Avatar billede roenving Novice
21. juli 2007 - 05:52 #2
Nu er der jo altid sprogforskelle også at tage hensyn til ...

-- men hvis du kun har simple værdier, er et array jo den lige vej frem ...

-- skal du have flere sæt data med samme datastruktur vil instanser af en klasse være et indlysende valg ...

-- har disse datasæt enkelt-elementer, der over tid kan blive helt anderledes (f.eks. ændret fra simple til komplekse data), kan en underklasse være den rigtige løsning, men det kan netop give helt andre problemer ...

-- måske kan du finde løsningen på dit problem ved at tænke parallelt til 'normalisering' i forhold til databaser !-)

-- altså, at man bør sørge for, at man på intet tidspunkt gemmer en stump data to gange, men så opretter en relation til en ny tabel, f.eks. en tabel over jobfunktioner, arbejdssteder osv. osv. !o]
Avatar billede madsleejensen Nybegynder
21. juli 2007 - 21:13 #3
hvad med performence, gør det nogen forskel hvad jeg gemmer det i ?

har altid undret mig over om et object jeg erklære tager længere tid at load end lad os sige et string object?
Avatar billede roenving Novice
22. juli 2007 - 01:42 #4
Et objekt er i stort set alle programmeringssprog en struktur, der er langt mere kompliceret end alle andre (data-)strukturer, f.eks. fordi objekter kan (ikke behøver !-) indeholde meget andet end data, og initialiseringen derfor kræver adskilligt mere end simple data ...

-- til gengæld vil du i adskillige sammenhænge opnå en bedre løbende performance, hvis dine objekter netop benytter nogle af disse muligheder, og/eller hvis du kan forsimple andre ender af koden ved at benytte dig af objektet, netop derfor brugte jeg parallellen til database-optimering, for en relationel database vil oftest blive adskilligt hurtigere end en enkelt tabel, hvor mange data gentages i mange records ...

-- prøv at google efter 'database normalisering', hvis du ikke er med på betydningen, og spørg bare videre, hvis du ikke fanger det !-)

PS. OOP er langt mere end bare at skrive koden lidt anderledes, det er faktisk på nogle leder en direkte fortsættelse af den måde vi selv tænker på, men på andre leder en fuldstændig anderledes måde, f.eks. var jeg selv for en 10-15 år siden adskillige måneder om at komme i nærheden af en forståelse; måske netop fordi, jeg i mange år havde programmeret i de gamle sprog, og derfor havde et udgangspunkt om at man først gør dette, derefter dette, og så kan man enten gøre det ene eller det andet ...

-- og jeg er helt sikker på, at slår mine kommentarer ikke til, så kan f.eks. arne_v tilføje nogle yderligere kommentarer eller links, som kan give dig en yderligere mulighed for at 'tygge' det igennem !o]
Avatar billede madsleejensen Nybegynder
13. september 2008 - 09:11 #5
hej roenving :) gider du ikke smide et svar
Avatar billede roenving Novice
13. september 2008 - 09:42 #6
Velbekomme '-)
Avatar billede roenving Novice
13. september 2008 - 10:13 #7
-- og tak for point ;~}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester