Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [oop]Wskaźniki do obiektów, wewnątrz innych obiektów
luinnar
post 25.08.2005, 16:16:58
Post #1





Grupa: Zarejestrowani
Postów: 155
Pomógł: 0
Dołączył: 15.07.2004
Skąd: Bielsko-Biała

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


Jestem trochę początkujący w oop i nie wiem jak się nazywa to co mamy z ... pokaże to na kodzie
  1. <?php
  2. $klasa = new klasa;
  3. ?>
i chodzi mi o to co mamy w zmiennej $klasa. Będę TO nazywał "odnośnikiem" (do czasu aż Wy mi nie powiecie smile.gif )

Mam taki teoretyczny problem.
Załóżmy że posiadam klasę MODULES.
Modules na początku programu odpala klasę DB i przechowuje "odnośnik" do niej.
Jeżeli w klasie newsów chciałbym użyć DB to wywołuje metodę klasy MODULES np: get('nazwa modułu') i ona zwraca mi "odnośnik" do odpowiedniej klasy a jak jej nie ma to ją odpala (czyli coś jak Singleton - jak się myle to poprawcie)

I teraz rodzi się pytanie: W jaki sposób dostarczyć każdej klasie "odnośnik" do klasy MODULES tak aby było to "obiektowo".


--------------------
notDevBlog - devblog.luinnar.com
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
chmolu
post 25.08.2005, 16:27:46
Post #2





Grupa: Zarejestrowani
Postów: 179
Pomógł: 0
Dołączył: 8.10.2004

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


Nie "odnośnik" tylko obiekt klasy X.
Możesz przekazać w konstruktorze lub np. stworzyć osobną metodę setModule(), czy coś podobnego.

Tak w ogóle to poczytaj sobie o OO tongue.gif
Go to the top of the page
+Quote Post
luinnar
post 25.08.2005, 16:59:55
Post #3





Grupa: Zarejestrowani
Postów: 155
Pomógł: 0
Dołączył: 15.07.2004
Skąd: Bielsko-Biała

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


Cytat(chmolu @ 2005-08-25 15:27:46)
Tak w ogóle to poczytaj sobie o OO tongue.gif

Troche czytałem (mam książkę do php i w wortalu jest artykuł)

O przekazywaniu w konstruktorze też myślałem ale wydawało mi się to "mało eleganckie" rozwiązanie.
Mógłbyś coś więcej powiedzieć o tej metodzie (setModule)


--------------------
notDevBlog - devblog.luinnar.com
Go to the top of the page
+Quote Post
Ociu
post 25.08.2005, 17:06:14
Post #4





Grupa: Moderatorzy
Postów: 1 566
Pomógł: 37
Dołączył: 14.05.2003
Skąd: Kraków




singleton ?

  1. <?php
  2. public function __construct()
  3. {
  4. $this -> db = db::getinstance();
  5. }
  6. ?>
Go to the top of the page
+Quote Post
NuLL
post 25.08.2005, 17:21:17
Post #5





Grupa: Zarejestrowani
Postów: 2 262
Pomógł: 21
Dołączył: 3.05.2004
Skąd: Sopot, Krakow, W-wa

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


Przy niekorzystaniu z singletona przekazywanie via konstruktor to rozwiązanie zdecydowanie najlepsze.


--------------------
Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
Go to the top of the page
+Quote Post
chmolu
post 25.08.2005, 21:19:55
Post #6





Grupa: Zarejestrowani
Postów: 179
Pomógł: 0
Dołączył: 8.10.2004

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


Poza tym, kod najeżony Singletonami śmierdzi.

http://c2.com/cgi/wiki?SingletonPattern
http://c2.com/cgi/wiki?SingletonsAreEvil
Go to the top of the page
+Quote Post
luinnar
post 25.08.2005, 22:08:09
Post #7





Grupa: Zarejestrowani
Postów: 155
Pomógł: 0
Dołączył: 15.07.2004
Skąd: Bielsko-Biała

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


Ok.
Narodziło mi się nowe pytanie.
Jak przez klase module odpalić inną klase która potrzebuje jakiś danych do konstruktora

EDIT: Udało mi się to rozwiązać samemu - przesyłam dane w postaci tablicy.

Dziękuje wszystkim za pomoc. Wybrałem przekazywanie obiektu przez konstruktor i działa!

Ten post edytował luinnar 26.08.2005, 11:12:19


--------------------
notDevBlog - devblog.luinnar.com
Go to the top of the page
+Quote Post

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: 24.07.2025 - 20:46