Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Pytanie Dotyczące OOP
frytek92
post
Post #1





Grupa: Zarejestrowani
Postów: 163
Pomógł: 10
Dołączył: 9.11.2007
Skąd: Goleniów

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


Witam

  1.  
  2. $oop = new test_class;
  3.  
  4. $oop->funkcja()->funkcja();
  5.  


Moje pytanie do czego służy takie wywoływanie metody ?, kiedy się to stosuje może jakiś przykład klasy w której mamy takie zastosowanie bo nie mogę pojąc dlaczego metody są wywoływane w taki sposób czyli "$oop->funkcja()->funkcja()"

Pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
-=Peter=-
post
Post #2





Grupa: Zarejestrowani
Postów: 304
Pomógł: 51
Dołączył: 4.02.2005
Skąd: Kraków

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


@Crozin - tutaj raczej chodzi o:
  1. String word = new PlainTextFile("plik").getLine(0).getWords()[0];
  2.  
  3. //vs
  4.  
  5. String word = new PlainTextFile("plik").getFirstWordFromLine(0);
  6. //lub bardziej ogólnie
  7. String word = new PlainTextFile("plik").getWordFromLine(0, 0);


Chodzi o to, że w pierwszym przypadku odkrywamy implementację klasy PlainTextFile, to że obiekt tej klasy składa się z obiektów Line.

Inny bardziej jaskrawy przykład:
  1. class newsActions
  2. {
  3. public function doSave(...)
  4. {
  5. //... coś tam robię i na końcu przekierowanie
  6. $this->getController()->redirect(...);//"wraki pociągów" ;)
  7. //vs
  8. $this->redirect(...);
  9. }
  10. }


ukrywamy to, że korzystamy z front controllera aby zrobić przekierowanie. Np. w testach jednostkowych łatwiej nam w razie potrzeby przesłonić jedną metodę aby zrobić jakąś zaślepkę, niż przesłaniać dwie metody. Poza tym taki kod jest bardziej odporny na zmiany, bo co jeśli metoda redirect z kontrolera (zwróconego przez getController) zostanie przeniesiona gdzieś indziej? Czekają nas zmiany w wielu miejscach, zamiast w jednym, gdyż klasy są mocno zależne od siebie.
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: 9.10.2025 - 15:55