![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 663 Pomógł: 6 Dołączył: 3.06.2007 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
*Plik Bootstrap* Każdemu obiektowi który ma mieć zakres globalny przekazujemy w konstruktorze context
Każdy obiekt globalny dziedziczy po klasie System_Object
Obiekt Kontext
Przykłądowa klasa. Wszystkie inne na podobnej zasadzie. Nie ma żadnych setterów, getterów, wszystko bez zbędnych kodów.
sposób użycia
Moim zdaniem to musi być ostateczne rozwiązanie problemu globalsów. Bardzo proszę o dyskusję Czy singletony zamiast tego byłyby wydajniejsze ? Podobno singletony to zło. Ja już zgupłem do reszty @_@ Ten post edytował Black-Berry 5.11.2008, 09:24:28 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 387 Pomógł: 273 Dołączył: 18.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Black-Berry, nie wiem czy do końca zrozumiałem Twój kod, ale imho trochę go przekombinowałeś. Jeżeli coś palnąłem, to mnie popraw (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Czyli z obiektu $context pobierasz listę elementów i w pętli (no właśnie - po co w pętli? Zwykłe przypisanie nie zadziała?) ładujesz wszystkie obiekty do tablicy $this->context, do której upraszczasz sobie później dostęp przez gettera. A co jeżeli po tym obiekcie, doda się następny? Nie będziesz miał do niego dostępu - lista elementów będzie już stara. Poza tym, dostęp do obiektów nie powinien być taki prosty. W ten sposób mieszasz elementy klasy z globalnymi. Poza tym pozwalasz na takie cuda:
Co ma obiekt $buffer, do bazy danych? (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Ja u siebie robię to tak: mam jeden główny obiekt $ffCore który zajmuje się wczytywaniem innych i 'komunikacją' między nimi. Początek przykładowej klasy wygląda tak:
Utworzenie jej obiektu:
Główny kontroler sprawdza, czy zawiera już instancję obiektu o takiej nazwie. Jeżeli nie, tworzy ją. W przy tworzeniu, '$ffCore' przekazuje swoją instancję w konstruktorze i umożliwia mu stworzenie aliasów do innych obiektów, które będą potrzebne. A jeżeli jakiś obiekt pojawi się później, zawsze mogę utworzyć alias do samego $ffCore, czego jednak staram się unikać. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.10.2025 - 19:08 |