-
Data: 2012-03-21 14:42:41
Temat: Re: Jaki wzorzec projektowy: pilnowanie cyklu życia innego obiektu ?
Od: Andrzej Jarzabek <a...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On Mar 21, 8:13 am, zażółcony <r...@c...pl> wrote:
[...]
> smart pointera i zaraz za nim konstrukcja observera. Dlatego ja
> kombinowałem od razu z mniej czystym rozwiązaniem, gdzie
> smart-pointer jest od razu obserwatorem i sam wie, skąd wypisać
> wskazywany obiekt. Muszę nad tym pomyśleć. Jeszcze raz dzięki :)
Przy okazji (jeszcze raz z poprawką, że nie znam się na FoxPro) to
raczej niweiele zmienia: w najbardziej topornym przypadku smart
pointer czy inny wrapper musi trzymać listę kolekcji i usuwać wskaźnik
do trzymanego obiektu z każdej z nich, w eleganckim rozwiązaniu trzyma
listę referencji (wskaźników czy co tam ma FoxPro) na interfejsy
(klasę bazową, czy co tam ma FoxPro) 'obserwator', które są
implementowane przez typ trzymający kolekcję i implementujący notify()
funkcją usuwającą przekazany wskaźnik z kolekcji. Z grubsza w obydwu
wariantach dzieje się dokładnie to samo, jedynie z ewentualnym
narzutem na wywołanie funkcji wirtualnej.
Jeśli chodzi o tworzenie dodatkowych obiektów, to zauważ:
1. Jeśli używasz w swoim smart pointerze obserwatora, zamiast weak
pointerów, to odchodzi ci tworzenie obiektu licznika.
2. Jeśli masz w FoxPro coś w rodzaju object composition z C++ i nie
wymagasz polimorfizmu, to możesz zamiast smart pointera zastosować
wrapper który powiadamia obserwatorów.
3. Jeśli nie masz kompozycji, możesz ewentualnie pomyśleć o
dziedziczeniu (w niektórych językach są do tego mixiny, ale FoxPro bym
o to nie podejrzewał), obserwatorów powiadamia destruktor klasy
bazowej. Oczywiście wtedy odpada automatyczna destrukcja pierwotnego
obiektu.
4. A najlepiej to rzuć to g..no :)
Następne wpisy z tego wątku
- 21.03.12 14:46 zażółcony
Najnowsze wątki z tej grupy
- Alg. kompresji LZW
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
Najnowsze wątki
- 2025-02-21 Warszawa => Key Account Manager IT <=
- 2025-02-21 Warszawa => Data Engineer (Tech Lead) <=
- 2025-02-21 Aliexpress zaczął oszukiwać na bezczelnego.
- 2025-02-21 Warszawa => System Architect (Java background) <=
- 2025-02-21 Kula w łeb
- 2025-02-21 Warszawa => System Architect (background deweloperski w Java) <=
- 2025-02-21 Warszawa => Solution Architect (Java background) <=
- 2025-02-21 Lublin => JavaScript / Node / Fullstack Developer <=
- 2025-02-21 Pawel S
- 2025-02-21 Warszawa => Key Account Manager (Usługi HR) <=
- 2025-02-21 Katowice => Senior Field Sales (system ERP) <=
- 2025-02-21 Chrzanów => Programista NodeJS <=
- 2025-02-21 Wrocław => Konsultant wdrożeniowy Comarch XL/Optima (Księgowość i
- 2025-02-21 Warszawa => Administrator Systemów Windows IT <=
- 2025-02-21 Wrocław => Specjalista ds. Sprzedaży (transport drogowy) <=