eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingCo może robić konstruktor i dlaczego nie?Re: Co może robić konstruktor i dlaczego nie?
  • Path: news-archive.icm.edu.pl!news.icm.edu.pl!news.supermedia.pl!newsfeed.pionier.net
    .pl!newsfeed.straub-nv.de!proxad.net!feeder1-2.proxad.net!74.125.179.80.MISMATC
    H!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
    From: Roman W <b...@g...pl>
    Newsgroups: pl.comp.programming
    Subject: Re: Co może robić konstruktor i dlaczego nie?
    Date: Thu, 5 Jul 2012 02:37:02 -0700 (PDT)
    Organization: http://groups.google.com
    Lines: 39
    Message-ID: <b...@g...com>
    References: <4ff4908d$0$1302$65785112@news.neostrada.pl>
    <1...@g...com>
    NNTP-Posting-Host: 193.189.80.39
    Mime-Version: 1.0
    Content-Type: text/plain; charset=ISO-8859-2
    Content-Transfer-Encoding: quoted-printable
    X-Trace: posting.google.com 1341481023 20336 127.0.0.1 (5 Jul 2012 09:37:03 GMT)
    X-Complaints-To: g...@g...com
    NNTP-Posting-Date: Thu, 5 Jul 2012 09:37:03 +0000 (UTC)
    In-Reply-To: <1...@g...com>
    Complaints-To: g...@g...com
    Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=193.189.80.39;
    posting-account=EexxQQoAAAAkOfWz0VZRKLcHNpXJZLB9
    User-Agent: G2/1.0
    Xref: news-archive.icm.edu.pl pl.comp.programming:198266
    [ ukryj nagłówki ]

    On Thursday, July 5, 2012 9:21:52 AM UTC+1, Maciej Sobczak wrote:
    > W dniu środa, 4 lipca 2012 20:50:53 UTC+2 użytkownik slawek napisał:
    >
    > > I tu jest pytanie, a nawet dwa:
    > >
    > > 1. Czy nie wystarczyłoby zrobić copy-paste tego co ma run() w środku do
    > > konstruktora i wy...ć [ref1] zbędne już run() ?
    >
    > Jeśli konstruktor i run() zawsze idą w parze i nie są rozdzielone innymi operacjami
    (spekulacja: można mieć listę takich obiektów? można je zapisać i odczytać? itd.), to
    można. Ale dlaczego się na tym zatrzymywać? Jeżeli zaraz po run() obiekt i tak jest
    niszczony, to całość można zebrać w jedną funkcję runFoo().
    >
    > Paweł podał argument, że być może ta funkcja jest skomplikowana i korzysta z usług
    innych klas, które odwołują się do pól Foo - ale to niewiele zmienia, bo skoro tym
    innym klasom trzeba podać referencje do tych wykorzystywanych pól, to równie dobrze
    można im podać referencje do odpowiednich zmiennych lokalnych stworzonych w run().

    >
    > Podejrzewam tu po prostu nadmiar nieuzasadnionej "obiektowości".

    Moze byc tez chec rozdzielenia trzech faz funkcji run():

    1. przygotuj zmienne lokalne (np. rozpakuj dane wejsciowe, ustaw odpowiednie opcje)
    2. wykonaj potrzebna operacje
    3. posprzataj po sobie

    Faza 1. to konstruktor klasy Foo, faza 2. to Foo.run() a faza 3. to destruktor Foo.

    Alternatywa jest albo duza funkcja run(), albo przekazywanie mnostwa zmiennych
    pomiedzy funkcja prepareRun() a run().

    RW

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: