-
Data: 2012-07-05 11:37:02
Temat: Re: Co może robić konstruktor i dlaczego nie?
Od: Roman W <b...@g...pl> szukaj wiadomości tego autora
[ pokaż wszystkie 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
Następne wpisy z tego wątku
- 05.07.12 13:38 AK
- 05.07.12 13:38 Andrzej Jarzabek
- 05.07.12 15:36 Paweł Kierski
- 05.07.12 16:08 slawek
- 05.07.12 16:27 slawek
- 05.07.12 15:49 slawek
- 05.07.12 16:24 slawek
- 05.07.12 16:18 slawek
- 05.07.12 16:52 AK
- 05.07.12 18:59 Michoo
- 05.07.12 19:06 Michoo
- 05.07.12 21:01 slawek
- 05.07.12 22:34 Edek Pienkowski
- 05.07.12 23:30 slawek
- 05.07.12 23:45 Edek Pienkowski
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-03-12 Katowice => Key Account Manager (ERP) <=
- 2025-03-12 Warszawa => Analityk Biznesowo-Systemowy <=
- 2025-03-12 Prawo u polaczków
- 2025-03-12 Łódź => Programista NodeJS <=
- 2025-03-12 O co chodzi Aliorowi?
- 2025-03-11 Warszawa => Kierownik ds. kluczowych Klientów <=
- 2025-03-11 Łódź => System Administrator (Linux, Active Directory) <=
- 2025-03-10 roaming
- 2025-03-10 wodor
- 2025-03-10 Ostrów Wielkopolski => NodeJS Developer <=
- 2025-03-10 Białystok => System Architect (background deweloperski w Java) <=
- 2025-03-10 Częstochowa => Backend Developer (Node + Java) <=
- 2025-03-10 Poznań => Konsultant wdrożeniowy Comarch XL (Logistyka, WMS, Produkc
- 2025-03-10 Bydgoszcz => Specjalista ds. Sprzedaży (transport drogowy) <=
- 2025-03-10 China-Kraków => Senior PHP Symfony Developer <=