Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Implementacja klas, Czy potrzebna?
kezard
post
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 19.01.2010

Ostrzeżenie: (0%)
-----


Witam!

Załóżmy że mamy przykladowa funkcje doSomething() :

  1. function doSomething($obj)
  2. {
  3. $obj->imie = 'Adam';
  4. $obj->nazw = 'Kowalski';
  5.  
  6. return $obj;
  7. }
  8.  
  9. doSomething($test);
  10. echo $test->imie.' '.$test->nazw;


Ten kod oczywiscie zadziała, jednak pytanie brzmi czy warto implementowac klase dla obiektow wykorzystanych w przykladzie. Czy jest sens, nawet jesli zwracaja wiekszoa ilosc danych niz tylko imie i nazwisko? Czy warto tworzyc dodatkowy kod aby byc OOP czy nie marnowac czasu"skoro dziala" ? Jakie sa roznice techniczne?

Dla porownania :
  1. class Test
  2. {
  3. public $imie;
  4. public $nazw;
  5. }
  6.  
  7. function doSomething($obj)
  8. {
  9. $obj->imie = 'Adam';
  10. $obj->nazw = 'Kowalski';
  11.  
  12. return $obj;
  13. }
  14.  
  15. $test = new Test;
  16. doSomething($test);
  17. echo $test->imie.' '.$test->nazw
  18. ?>


Dodam że wykorzystuje to przy przekazywaniu danych do widokow (MVC). Czy warto tworzyc implementacje?

pozdrawiam.

Ten post edytował kezard 20.09.2010, 08:29:50
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Cytat
Dlaczego? Uwazam ze to marnowanie czasu na pisanie funkcji get i set tylko po to zeby przepisywac wartosci do zmiennych. Pozatym niepotrzebnie sie kod powieksza. Dlaczego nie upraszczac sobie bezposrednim dostepem do zmiennych?
Dzięki temu zyskujesz większą kontrolę nad dostępem do danych zawartych w obiekcie. Masz dodatkowy "punkt dostępu". Nawet jeżeli w tej chwili jest to tylko przypisanie/zwrócenie pola, w przyszłości może dość potrzeba rozbudowy tego (np. dodania jakieś walidacji danych). Co prawda w przypadku PHP takie gettery/settery to dodatkowe obciążenie, ale w praktyce jest ono zerowe, a elastyczność/przyszłościowość kodu na tym zyskuje.

Cytat
I dobrze ze PHP jest malo struktur bo one sa przeznaczone dla jezykow nieobiektowych
PHP to nie jest język obiektowy - nawet udawanie obiektowego słabo mu wychodzi. (IMG:style_emoticons/default/smile.gif)

Cytat
W tej chwili wyglada to tak ze mam w kodzie takie "kwiatki" :
Wygląda mi na to, że używasz pętli for, zamiast foreach, która by prawdopodobnie uprościła zapis. Na początek możesz pokombinować w tę stronę.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 7.10.2025 - 00:42