-
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
- "Wuj dobra rada" z KDAB rozważa: Choosing the Right Programming Language for Your Embedded Linux Device
- Nowa ustawa o ochronie praw autorskich - opis problemu i szkic ustawy
- 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?
Najnowsze wątki
- 2025-03-22 Warszawa => Senior Account Manager <=
- 2025-03-22 Warszawa => BI Developer / Analityk BI <=
- 2025-03-22 Warszawa => IT Recruiter <=
- 2025-03-21 Zakaz wjazdu
- 2025-03-21 Nie zawsze wchodzi jedynka
- 2025-03-21 Samochody na wodę
- 2025-03-20 miszczowie parkowania
- 2025-03-20 "Wuj dobra rada" z KDAB rozważa: Choosing the Right Programming Language for Your Embedded Linux Device
- 2025-03-21 Gliwice => Business Development Manager - Dział Sieci i Bezpieczeńst
- 2025-03-21 Warszawa => Strategic Account Manager <=
- 2025-03-21 Wrocław => SOC Tech Leader <=
- 2025-03-21 Szczecin => Key Account Manager IT <=
- 2025-03-21 Ostrów Wielkopolski => Konsultant Wdrożeniowy Comarch XL/Optima (Ksi
- 2025-03-21 Wrocław => Konsultant wdrożeniowy Comarch XL/Optima (Księgowość i
- 2025-03-21 Warszawa => IT Business Analyst <=