Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Jak traktowac obiekty?
Beynar
post
Post #1





Grupa: Zarejestrowani
Postów: 60
Pomógł: 1
Dołączył: 6.12.2007

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


Ostatnio mnie nurtuje pytanie dot. OOP... mianowicie mam nastepujace pytania:

1. Czy wlasciwym jest pisac np. klase user uzywac jej w ten sposob by do kazdej metody podawac jakies argumenty ktore w rzeczywistosci beda odnosic sie do roznych userow? Czy tworzyc instancje klasy danego user i w tym momencie wszystkie metody obiektu nie przyjmuja argumentow dotyczących tego na jakim userze ma wykonywac operacje, poniewaz operuje na obecnym stanie obiektu - danym userze.

2. Jesli przyjac powyzsza idee, to jak rozwiazac problem gdy dany obiekt wyjsciowo ma reprezentowac jakis string. Generowac napis ktory ma zostac wyswietlony. Takich napisow ma byc 30. Tworzyc 30 obiektow tylko po to zeby je wydrukowac? Chyba troche malo optymlanie... z drugiej strony jesli skorzystac z jednego obiektu do budowania tych 30 napisow to moj obiekt zamini sie w mala fabryke i juz nie bedzie tak swietnie implementowal idei obiektowosci (tak mysle, moze blednie).

Ten post edytował Beynar 19.05.2008, 22:00:08
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
Wg. mnie statyczna może być np. kierownica we wszystkich samochodach - okrągła. Inne cechy takie same dla danego obiektu (samochodu) można ustatecznić. Takie cechy i metody (jak np. jedź do przodu) ktore sa wspolne dla wszystkich.
To co opisałeś to raczej dziedziczenie (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Klasa malyFiat i duzyFiat mogą dziedzyczyć po klasie samochod pewne wspólne cechy - np. wspomniana przez Ciebie kierownica. Jest w obu przypadkach okrągła, służy do zmiany położenia kół. Tak więc klasa samochod może zawierać metodę (typu: protected)
  1. <?php
  2. class samochod{
  3. protected method kierownica($srednica = 13){
  4. //coś tam
  5. }
  6. }
  7.  
  8. class malyFiat extends samochod{
  9. //metoda kierownica() jest zaimplementowana
  10. }
  11.  
  12. class duzyFiat extends samochod{
  13. //j/w
  14. }
  15. ?>


Metody statyczne potrzebne są właściwie tylko wtedy, gdy nie mamy obiektu danej klasy i nie chcemy tworzyć jej instnacji, ale chcemy wykonać jakąś metodę tej klasy.

EDIT:
i się spoźniłem

Ten post edytował Crozin 19.05.2008, 23:32:19
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: 31.12.2025 - 03:31