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%)
-----


To dodaj trochę
  1. <?php
  2. private function trelemorele($args){
  3. //a ja nie robie nic....
  4. }
  5. ?>
Żeby poprawił się stosunek "normalnych" do statycznych (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)

A tak na serio. To że połowa metod klasy jest statyczna, nie oznacza, że jest to źle napisana klasa. A jeżeli już tak bardzo chcesz mieć wszystko "normalnie" możesz posł€żyć się czymś takim:
  1. <?php
  2. public static function build($routePath){
  3. $obj = new self;
  4. $obj->buildRoutePath($routePath); //ta metoda jest "dynamiczna" i może korzystać z innych "dynamicznych"
  5. }
  6. ?>
Wtedy musisz tylko musisz zawartość konstruktora wrzucić w inną metodę, albo dodać mu jakiś warunek sprawdzający skąd został utworzony obiekt.
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 Aktualny czas: 31.12.2025 - 06:30