eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingJaki wzorzec projektowy: pilnowanie cyklu życia innego obiektu ?Re: Jaki wzorzec projektowy: pilnowanie cyklu życia innego obiektu ?
  • 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 :)

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: