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
Beynar
post
Post #2





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

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


Dzięki za odpowiedź
Cytat(dr_bonzo @ 19.05.2008, 19:14:17 ) *
2. Jesli ma reprezentowac string to czemu nie: 1 string == 1 obiekt. A jesli ma GENEROWAC stringi, to powinien ci jeden generator wystarczyc - najlepiej to opisz ten problem bardziej szczegolowo.

Opis zagadnienia
Temat już poruszałem na forum ale nie dostałem żadnej odpowiedzi. Chodzi o klase URL która będzie wykorzystywana w dwóch miejscach aplikacji:
1. Router (rutowanie po rzeczywistym http-request, forwardowani, redirect itd...)
2. Widok do budowania linków na stronie

Klasa URL będzie po prostu obsługiwała PATH INFO, co ja nazywam trasą routowania.
Klasa ta będzie posiadała metody do szyforwania linków, oraz uzupełniała (przy budowaniu linków) niektore elementy trasy routowania ktore są nieznajome dla programisty widoku. Tj. sesid, język. Programista w widoku poda tylko url -> build("controller/action/parm0/parm1/parm2") a obiekt url, zaszyfruje oraz doda odpowiednie elementy.

Problematyka
1. Czy programista w widoku powinien tworzyć nowe linki w ten sposób:
  1. <?php
  2. // powolanie obiektu reprezentujacego konkretny url
  3. $url = new url("home/index/34");
  4. // uzyskanie zaszyfrowanego, uzupelnionego, uporzadkowanego linku (string)
  5. $url -> build();
  6. // kazdy kolejny link jest budowany poprzez powolanie nowego obiektu
  7. $url2 = new url("admin/login");
  8. $url2 -> buidl();
  9. ?>

czy tak:
  1. <?php
  2. // utowrzenie obiektu z domyslnymi wartosciami
  3. $url = new()
  4. // korzystanie z tego obiektu jak z fabryki.
  5. $url -> build("home/index/34");
  6. $url -> build("admin/login");
  7. ?>


Skłaniałbym się ku pierwszej metodzie ponieważ wydaje mi się bardziej obiektowa i przejżysta. Jedyną dużą wadą tej opcji jest wydajność. Ilość obiektów = ilość linków, to nie będzie za wolne?
Część własności klasy URL będzie statyczne.

pozdrawiam
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: 30.12.2025 - 14:07