-
Path: news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!goblin1!g
oblin.stu.neva.ru!postnews.google.com!gr6g2000vbb.googlegroups.com!not-for-mail
From: Andrzej Jarzabek <a...@g...com>
Newsgroups: pl.comp.programming
Subject: Re: Jaki wzorzec projektowy: pilnowanie cyklu życia innego obiektu ?
Date: Wed, 21 Mar 2012 06:42:41 -0700 (PDT)
Organization: http://groups.google.com
Lines: 34
Message-ID: <5...@g...googlegroups.com>
References: <jjv1o4$brh$1@news.task.gda.pl>
<4f631023$0$4069$c3e8da3$efbdef2c@news.astraweb.com>
<jjv3a9$e9s$1@news.task.gda.pl>
<4...@g...googlegroups.com>
<jjvbm4$qd4$1@news.task.gda.pl> <jk1vdn$2mq$1@inews.gazeta.pl>
<jkc2ju$44g$1@news.task.gda.pl>
NNTP-Posting-Host: 212.161.11.18
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-2
Content-Transfer-Encoding: quoted-printable
X-Trace: posting.google.com 1332337362 30078 127.0.0.1 (21 Mar 2012 13:42:42 GMT)
X-Complaints-To: g...@g...com
NNTP-Posting-Date: Wed, 21 Mar 2012 13:42:42 +0000 (UTC)
Complaints-To: g...@g...com
Injection-Info: gr6g2000vbb.googlegroups.com; posting-host=212.161.11.18;
posting-account=jr5y-woAAAAWidgVjrSJ6j8m650CTb-v
User-Agent: G2/1.0
X-HTTP-UserAgent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like
Gecko) Chrome/17.0.963.79 Safari/535.11,gzip(gfe)
Xref: news-archive.icm.edu.pl pl.comp.programming:196237
[ ukryj 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
- 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??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
- Ada 2022 Language Reference Manual to be Published by Springer
Najnowsze wątki
- 2024-11-04 GNSS Motorola G85 vs Redmi Note 9 pro
- 2024-11-04 Katowice => SAP BTP Consultant (mid/senior) <=
- 2024-11-04 Katowice => Spedytor międzynarodowy <=
- 2024-11-04 Warszawa => Specjalista/tka ds. Zamówień publicznych <=
- 2024-11-04 Poznań => QA Engineer <=
- 2024-11-04 Poznań => QA Inżynier <=
- 2024-11-04 Polskie sądy są bardzo wyrozumiałe...
- 2024-11-04 Wrocław => SAP Project System/EPPM Consultant <=
- 2024-11-04 Gliwice => Team Lead / Tribe Lead FrontEnd <=
- 2024-11-04 Kraków => Programista Full Stack (.Net Core) <=
- 2024-11-04 Kraków => Software .Net Developer <=
- 2024-11-04 Kraków => Programista Full Stack .Net <=
- 2024-11-04 Warszawa => Key Account Manager <=
- 2024-11-04 Warszawa => Spedytor Międzynarodowy <=
- 2024-11-04 Warszawa => E-COMMERCE specialist <=