![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 898 Pomógł: 48 Dołączył: 2.11.2005 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Witam, mam problem z leniwą konkretyzacją (czyli opóźnioną inicjacją niektórych cech obiektów).
Sprawa wygląda tak, że mam kolekcję obiektów -> dajmy na to książek. Kolekcja na początku inicjuje książki -> ale tylko autorów i tytuł ->spis rozdziałów chciałbym aby był inicjowany z "opóźnieniem" - tylko wtedy, kiedy będzie potrzebny. Generalnie wszystko jest proste jeśli rozważamy to z perspektywy jednej książki -> wystarczy stworzyć obiekt, i przy próbie wywołania metody ksiazka->podajRozdzialy - odczytujemy je z bazy i inicjujemy liste rozdzialow. Ja natomiast potrzebuję sposobu, aby w razie próby odczytania spisu treści jednej książki, automatycznie odczytać spisy treści pozostałych książek znajdujących się w kolekcji. Na początku myślałem, że będzi to proste, ale okazuje się, że utknąłem w tym punkcie. Myślałem o wykorzystaniu wzorca obserwatora -> ale tu pojawia się problem, bo każda ksiażka musiałaby mieć referencję do kolekcji książek - co spowoduje zapętlenie -> książka jest elementem kolekcji i jednocześnie kolekcja jest elementem książki... Przyznam się szczerze, że nie próbowałem zapisać kodu tego rozwiązania, więc nie mam 100% pewności, że to by nie działało, ale chyb nie będzie działac... Czy jest jakiś wzorzecz/ metoda, którą mógłbym wykorzystać do obejścia tego problemu. Dodam, że jest to dla mnie bardzo ważne, gdyż przykiład jest uproszczeniem, w moim przypadku, gdyby udało mi się rozwiazać ten problem zaoszczędzę dużo pracy bazie danych. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Takie gotowce to ja moge pisać (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Przykład taki jak szukałeś, z tym że zamiast listy rozdziałów jest generowana ich liczba jak tylko dla jakiejś książki wywołana zostanie mutoda getChaptersCount(). Nie pisałem komentarzy bo pisałem to na szybko, jak potrzeba coś wytłumaczyć to wołaj. Jednym słowem książka powinna wiedzieć w jakiej jest kolekcji (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 16.10.2025 - 20:49 |