Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] OOP - pytanie o konstruktor, __construct - możliwie najprostszy czy może być rozbudowany?
kreatiff
post 28.11.2012, 16:37:19
Post #1





Grupa: Zarejestrowani
Postów: 324
Pomógł: 105
Dołączył: 7.08.2012

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


Witam. Zaczynam raczkować w OOP, i natrafiłem na taką wątpliwość.
Czy mógłbym prosić o prostą wykładnię, które podejście jest bardziej "prawidłowe" dla poniższego przykładu (o ile którekolwiek jest prawidłowe wink.gif)?
Chodzi mi o to, czy dla zasady konstruktor powinien być możliwie jak najmniej skomplikowany i dalsze zadania na atrybutach powinno się wykonywać w osobnych metodach, czy nic nie stoi na przeszkodzie, by już w konstruktorze wykonywać działania?

Co lepsze? Ta klasa:
  1. class A {
  2. private $zmienna = '';
  3. private $info = '';
  4.  
  5. public function __construct($zmienna) {
  6. $this->zmienna = $zmienna;
  7. $this->info = $info;
  8. if ( $this->zmienna == 'test' ) $this->info = 'ok';
  9. else $this->info = 'coś nie gra';
  10. }
  11.  
  12. public function wyswietl() {
  13. return $this->info;
  14. }
  15. }
czy może ta klasa:
  1. class A {
  2. private $zmienna = '';
  3. private $info = '';
  4.  
  5. public function __construct($zmienna) {
  6. $this->zmienna = $zmienna;
  7. $this->info = $info;
  8. }
  9.  
  10. private function sprawdz() {
  11. if ( $this->zmienna == 'test' ) return 'ok';
  12. else return 'coś nie gra';
  13. }
  14.  
  15. public function wyswietl() {
  16. return $this->sprawdz();
  17. }
  18. }
Proszę nie zwracać uwagi na bezsensowny przykład, możliwy do rozwiązania w 1 linijce w sposób proceduralny. No chyba, że za pomocą klasy ten problem powinien być rozwiązany w kompletnie inny sposób. Wynik końcowy ma za zadanie zwrócić 'ok', albo 'coś nie gra', w zależności od parametru początkowego przy tworzeniu obiektu klasy A.
  1. $a = new A('test');
  2. echo 'Info: '. $a->wyswietl(); // wyświetli 'ok'
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 12:35