Avatar billede razmuz_dk Nybegynder
10. august 2006 - 11:05 Der er 3 kommentarer

Objekt-overvejelser

Jeg har lavet en omfattende community-side hvor jeg nu er stødt ind i nogle overvejelser angående anvendelsen af klasser/objekter.

Jeg har strukturmæssige årsager forsøgt at omdanne min kode til noget mere objekt-baseret. Alle funktioner der behandler brugere er smidt ned i user-objektet. HVis man fx vil printe en brugers navn (formateret som et link til brugerens profil) skriver man

$test = new user;
$test->output(array("user_id" => $user_id, "username" => $username));

Det virker fint!! Men det er jo - som jeg har forstået det - ikke "rigtig" OOP. Det er bare en simpel kategorisering af funktioner i klasser.

Jeg er derfor begyndt, at tænke i nye baner. Jeg har nogle gange behov for at "behandle" flere brugere af gangen og i den forbindelse kunne det være smart, hvis man omskrev user-objektet til at kunne behandles således:

$user1 = new user(array("user_id" => $user_id, "username" => $username));

$user2 = new user(array("user_id" => $user_id2, "username" => $username2));

print $user1->output();
print $user2->output();

do_something_with_users($user1, $user2);


Det er jo også fint - ganske flot struktur, meget logisk og nemt at behandle flere brugere! Fedt!

Men så kommer 100 kroners spørgsmålet... ville denne opbygning være betydeligt performance-dræbende i sig selv? Og hvad hvis man skal printe 200 brugere på en side? Så skal der jo oprettes 200 instances af users. Måske kan dette problem så afhjælpes ved at destroy'e objekterne når man er færdige med at bruge dem.

Tanker, svar, forslag, erfaringer og lign. er meget velkommen! :)
Avatar billede erikjacobsen Ekspert
10. august 2006 - 11:20 #1
Grundregel 1 er at man ikke skal overfylde sine websider. I stedet for 200 brugere er det vel kotyme at dele det op så man ser fx 25 af gangen, kan bladre og søge.

Og så grundregel nummer 2, at det man viser på en normal, ikke overfyldt webside, kan man sagtens have i RAM-lager, som objekter og strenge, indtil sidens HTML skal genereres.

200 af dine objekter vil nu heller fylde synderligt.
Avatar billede razmuz_dk Nybegynder
06. september 2006 - 13:29 #2
Okay, jamen tak for svaret :)

Lav et svar.
Avatar billede erikjacobsen Ekspert
06. september 2006 - 17:03 #3
Jeg samler slet ikke på point, tak.
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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