Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Controller - co lepsze?, getInstance(), czy przekazywanie obiektom...
Prph
post
Post #1





Grupa: Zarejestrowani
Postów: 338
Pomógł: 2
Dołączył: 4.03.2006
Skąd: Łódź

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


Witam,

Co jest lepszym rozwiazaniem? Singletone, czy przekazywanie go obiektom?
Dla przykladu:

  1. <?php
  2. // 1 rozwiazanie, klasa akcji:
  3.  
  4. public function execute(IController $oController)
  5. {
  6. $oController->.......;
  7. }
  8.  
  9. // 2 rozwiazanie, klasa akcji:
  10.  
  11. public function execute()
  12. {
  13. $oController = Controller::getInstance();
  14. $oController->.......;
  15. }
  16. ?>


Adrian.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
anas
post
Post #2





Grupa: Zarejestrowani
Postów: 172
Pomógł: 0
Dołączył: 22.09.2002
Skąd: Gorzów Wlkp

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


Hej.

Również uważam, że bez sensu jest tworzyć sztywne powiązania między obiektami - lepszym i dającym większe pole manewru jest rozwiązanie pozwalające bez ingerencji w już stworzony kod, manipulować istniejącymi obiektami. Właśnie dlatego pytałem o IoC. Generalnie ciekawym podejściem jest AOP - czyli programowanie aspektowe. Pokrótce chodzi o to aby do już istniejąycych obiektów, bez ingerencji w kod dorzucać nową funkcjonalność, podmieniać, wykonywać coś przed wywołaniem, lub po wywołaniu metody itd.

Przykład zastosowania:

Mamy sklep internetowy - wyliczamy cenę na podstawie kilku obiektów - cena bazowa -> podatek -> waluta = cena za produkt. Załóżmy że klient stwierdza po 3 miesiącach że chciałbym na wybrane produkty dorzucać promocję. Wtedy dzieki możliwości zdefiniowania funkcjonalności która wykona się ma obiekcie product, np.

$product->getProductPrice(Tax $taxObject, Currency $currencyObject, ProductDAO $productDAO);

zaraz po zwróceniu przez powyższą metodę wartości -> (Invoke.AfterReturning - definiuje kiedy ma sie wykonac nowa funkcjonalnosc). Po tym wszystkim należałoby zdefiniować dla jakich metod ma się to wykonać - np. Include("getProductPrice*") i mamy powiazania - tym wszystkim musi zarzadzac specjalnie przygotowane narzedzie.

W chwili obecnej w php ze wgzledu na trudna implementacje nie spotkalem sie z takim czyms - ale to ciekawy pomysl, ktory warto by bylo poruszyc w przyszlosci - to daje naprawde ogromne mozliwosci manipulowania kodem, bez koniecznosci ingerowania w juz istniejacy. Co myślicie o takim podejściu?

pozdrawiam

anas

Ten post edytował anas 3.07.2006, 11:50:40
Go to the top of the page
+Quote Post

Posty w temacie
- Prph   Controller - co lepsze?   2.07.2006, 08:15:40
- - Ludvik   Lepiej przekazywać jako argument funkcji. Pytanie ...   2.07.2006, 09:45:53
- - Prph   Dlaczego? Zobacz Mojavi - tam wszedzie sie tak rob...   2.07.2006, 10:42:35
- - anas   Hej. Wydaje mi się że dużo lepiej jest przekazywa...   2.07.2006, 10:47:10
- - Prph   Z drugiej strony czesc obiektow otrzymuje w kontru...   2.07.2006, 12:23:42
- - orson   witam Jestem w trakcie kończenia innego rozwiązan...   2.07.2006, 12:34:46
- - Ludvik   Skoro tak musisz robić, to bym się skłaniał do prz...   2.07.2006, 12:45:42
- - Prph   Owszem, kontroler Mojavi ma troche skomplikowanego...   2.07.2006, 15:07:41
- - anas   @orson: czy Twoje rozwiazanie to cos na zasadzie I...   2.07.2006, 17:02:39
- - orson   witam Niestety nie jest to IoC :/ może kiedyś Za...   2.07.2006, 18:15:27
- - bigZbig   @orson - byłbym wdzięczny gdybyś pr...   3.07.2006, 10:47:17
|- - Prph   Cytat(bigZbig @ 3.07.2006, 09:47 ) @Prph ...   3.07.2006, 14:27:10
- - Ludvik   Podpisuję się pod drugim pytaniem bigZbiga. W ten ...   3.07.2006, 11:12:08
- - Cysiaczek   W zasadzie, to ja też chciałbym przeczytac opinie ...   3.07.2006, 11:36:35
- - orson   witam @bigZbig: to jest rozwiązanie generalne. Po...   3.07.2006, 11:44:00
- - anas   Hej. Również uważam, że bez sensu ...   3.07.2006, 11:48:35
- - NuLL   CytatCo myślicie o takim podejściu?Podej...   3.07.2006, 11:57:30
- - Cysiaczek   Wydaje mi się, że samo przekazanie obiektu kontrol...   3.07.2006, 12:14:57
- - bigZbig   Myślę, że tu jest generalnie proble...   3.07.2006, 13:18:28
- - NuLL   Prosty quiz [PHP] pobierz, plaintext <?php...   3.07.2006, 17:52:55
|- - Prph   Cytat(NuLL @ 3.07.2006, 16:52 ) Bo wg mni...   4.07.2006, 01:31:37
- - splatch   Ej, panowie, ale chyba znacie definicje Front Cont...   3.07.2006, 19:54:12
- - Bora   Może warto zastosować tutaj rozwiązanie z javy? Np...   5.07.2006, 00:46:42
- - Ludvik   Hm... muszę przynać, że ciekawie to wygląda i nawe...   5.07.2006, 08:44:07
- - Sh4dow   Moim zdaniem wszystko zalezy od konstrukcji aplika...   6.07.2006, 11:17:08
- - Cysiaczek   Ale czy w tym wypdku o którym mówisz Sh4dow, to ni...   6.07.2006, 14:34:51
- - bigZbig   @Cysiaczek - jesli to jet klasa Singleton (poprawn...   6.07.2006, 14:42:44
- - Cysiaczek   Tak. Zdaję sobie z tego sprawę - mimo to zastanawi...   6.07.2006, 14:47:43
- - bigZbig   Ale w czym problem? Zalezy od ciebie czy przekazes...   6.07.2006, 14:55:33
- - Cysiaczek   Aha. Własnie do tego zmierzałem - po co "psuć...   6.07.2006, 15:07:49
- - splatch   Singleton jest zły. Dlaczego? Jest to niemalże to ...   6.07.2006, 18:15:53
- - Bora   podejrzewam że IoC może sie nie podobać osobom któ...   6.07.2006, 19:36:24


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: 8.10.2025 - 23:21