🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.objects
47 messages
47 total messages Started by dOvOb Mon, 23 Apr 2007 11:05
Dlaczego singletony?
#16519
Author: dOvOb
Date: Mon, 23 Apr 2007 11:05
11 lines
1109 bytes
Dlaczego singleton jest przewaznie przedstawiany w C++ jako klasa o jednej
instancji i o metodzie dostepowej (w stylu "getInstance"), a nie jako klasa ze
wszystkimi metodami statycznymi? (cos jak przestrzen nazw, tylko niektore
skladowe moga byc "private")
Czy ma to jakas zalete?

dOOb


-- 
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Re: Dlaczego singletony?
#16520
Author: Damian 'legion' Szuberski
Date: Mon, 23 Apr 2007 11:54
9 lines
1143 bytes
On 2007-04-23,  dOvOb wrote:
> Dlaczego singleton jest przewaznie przedstawiany w C++ jako klasa o jednej
> instancji i o metodzie dostepowej (w stylu "getInstance"), a nie jako klasa ze
> wszystkimi metodami statycznymi? (cos jak przestrzen nazw, tylko niektore
> skladowe moga byc "private")
Najpierw dowiedz się co to jest ten 'singleton'.

-- 
Damian Szuberski
Re: Dlaczego singletony?
#16521
Author: dovob
Date: Mon, 23 Apr 2007 12:24
12 lines
1234 bytes
> > Dlaczego singleton jest przewaznie przedstawiany w C++ jako klasa o jednej
> > instancji i o metodzie dostepowej (w stylu "getInstance"), a nie jako klasa
> > ze wszystkimi metodami statycznymi? (cos jak przestrzen nazw, tylko niektore
> > skladowe moga byc "private")
> Najpierw dowiedz się co to jest ten 'singleton'.
> 
I co wtedy?


-- 
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Re: Dlaczego singletony?
#16522
Author: Damian 'legion' Szuberski
Date: Mon, 23 Apr 2007 12:35
11 lines
1261 bytes
On 2007-04-23,   wrote:
>>> Dlaczego singleton jest przewaznie przedstawiany w C++ jako klasa o jednej
>>> instancji i o metodzie dostepowej (w stylu "getInstance"), a nie jako klasa
>>> ze wszystkimi metodami statycznymi? (cos jak przestrzen nazw, tylko niektore
>>> skladowe moga byc "private")
>> Najpierw dowiedz się co to jest ten 'singleton'.
> I co wtedy?
I teraz odpowiedz sobie na pytanie.

-- 
Damian Szuberski
Re: Dlaczego singletony?
#16523
Author: Seweryn Habdank-Wojewódzki
Date: Mon, 23 Apr 2007 12:46
28 lines
1747 bytes
Witam

dOvOb wrote:

> Dlaczego singleton jest przewaznie przedstawiany w C++ jako klasa o jednej
> instancji i o metodzie dostepowej (w stylu "getInstance"), a nie jako
> klasa ze wszystkimi metodami statycznymi? (cos jak przestrzen nazw, tylko
> niektore skladowe moga byc "private")
> Czy ma to jakas zalete?

Poczytaj o singletonach u Alexandrescu, to zrozumiesz różnice - 30 stron - 
opis + podejście generyczne do tego zadania. 

Powiedzmy, że dla jednego wątku singleton można opisać na 19 stronach. 

Szczególnie warto zobaczy np. na zagadnienie długości życia, kiedy należy
singleton "A" konstruować zawsze przed innymi obiektami i uśmiercać po
wszystkich. Problem jest bardzo nie banalny i generalnie dotyczy każdego
języka, w taki czy inny sposób. Kiedy dochodzi wielowątkowość to masz pełen
cyrk. 

A w ogóle to o C++ lepiej nie rozmawiać na tej grupie.

Pozdrawiam.

-- 
|\/\/|   Seweryn Habdank-Wojewódzki
 \/\/
Re: Dlaczego singletony?
#16524
Author: A.L.
Date: Mon, 23 Apr 2007 13:09
32 lines
1729 bytes
On Mon, 23 Apr 2007 14:46:39 +0200, Seweryn Habdank-Wojewódzki
<shw_mail@wp.pl> wrote:

>Witam
>
>dOvOb wrote:
>
>> Dlaczego singleton jest przewaznie przedstawiany w C++ jako klasa o jednej
>> instancji i o metodzie dostepowej (w stylu "getInstance"), a nie jako
>> klasa ze wszystkimi metodami statycznymi? (cos jak przestrzen nazw, tylko
>> niektore skladowe moga byc "private")
>> Czy ma to jakas zalete?
>
>Poczytaj o singletonach u Alexandrescu, to zrozumiesz różnice - 30 stron - 
>opis + podejście generyczne do tego zadania. 
>

To jest 29 i pol strony za duzo. Ale widac w C++ to jest Baaaarrrdzo
Trudne!

>Powiedzmy, że dla jednego wątku singleton można opisać na 19 stronach. 
>

To jest 18 i 3/4 strony za duzo.
 
>
>A w ogóle to o C++ lepiej nie rozmawiać na tej grupie.
>

Alez dlaczego, neich Pan sie nie krepuje!

A.L.
Re: Dlaczego singletony?
#16525
Author: Adam Karpierz
Date: Mon, 23 Apr 2007 13:22
39 lines
1745 bytes
Użytkownik "Seweryn Habdank-Wojewódzki" <shw_mail@wp.pl> napisał:

> Szczególnie warto zobaczy np. na zagadnienie długości życia, kiedy należy
> singleton "A" konstruować zawsze przed innymi obiektami i uśmiercać po
> wszystkich. Problem jest bardzo nie banalny i generalnie dotyczy każdego
> języka, w taki czy inny sposób. Kiedy dochodzi wielowątkowość to masz 
> pełen
> cyrk.

Nie rozumiem.

Problem jest trywialny:

Tu stricte Pythonowe

class Singleton:

    __single_state = {}

    def __init__(self):
        self.__dict__ = Singleton.__single_state

def main():

    ta  = Singleton()

    # tu kod

   del ta

main()


> A w ogóle to o C++ lepiej nie rozmawiać na tej grupie.

To prawda.
Ta grupa tyczy obiektowosci a C++ nie jest jezykiem obiektowym

AK
Re: Dlaczego singletony?
#16526
Author: Maciej Sobczak
Date: Mon, 23 Apr 2007 13:40
44 lines
1954 bytes
Adam Karpierz wrote:

> Problem jest trywialny:
> 
> Tu stricte Pythonowe
> 
> class Singleton:
> 
>     __single_state = {}
> 
>     def __init__(self):
>         self.__dict__ = Singleton.__single_state
> 
> def main():
> 
>     ta  = Singleton()
> 
>     # tu kod
> 
>    del ta
> 
> main()

Faktycznie, ta implementacja rozwiązuje wszystkie problemy oraz spełnia 
wszystkie oczekiwania różnych programistów.
Widzę też, że elegancko odzwierciedla każdy szczegół dyskusji ze 
wspomnianej tu książki.

>> A w ogóle to o C++ lepiej nie rozmawiaæ na tej grupie.
> 
> To prawda.
> Ta grupa tyczy obiektowosci a C++ nie jest jezykiem obiektowym
                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Pan Booch musiał o tym nie wiedzieć.
Panowie z Addison-Wesley też jacyś niedoinformowani w tej swojej serii 
"Object Technology".

Całe szczęście, że mamy grupę pl.comp.objects.


-- 
Maciej Sobczak : http://www.msobczak.com/
Programming    : http://www.msobczak.com/prog/
Re: Dlaczego singletony?
#16527
Author: Adam Karpierz
Date: Mon, 23 Apr 2007 14:26
42 lines
2431 bytes
Użytkownik "Maciej Sobczak" <no.spam@no.spam.com> napisał:

> Faktycznie, ta implementacja rozwiązuje wszystkie problemy oraz spełnia 
> wszystkie oczekiwania różnych programistów.

A jakich nie rozwiazuje ?
Konkrety ?

> Widzę też, że elegancko odzwierciedla każdy szczegół dyskusji ze 
> wspomnianej tu książki.

Ta ksiazka tyczy problemow w syfiastym C++ ktore zapewne
wystepuja tylko w nim wiec 'osochodzi' ?

Tyle tylko ze szanowny kolega nie raczyl zauwazyc
ze to co podalem to nie jest Singleton,.tzn nie stricte singleton

>>> A w ogóle to o C++ lepiej nie rozmawiaa na tej grupie.
>>
>> To prawda.
>> Ta grupa tyczy obiektowosci a C++ nie jest jezykiem obiektowym
>                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> Pan Booch musiał o tym nie wiedzieć.
> Panowie z Addison-Wesley też jacyś niedoinformowani w tej swojej serii 
> "Object Technology".
>
> Całe szczęście, że mamy grupę pl.comp.objects.

No wie Pan co mnie tam Booch at al.
Wystarczy ze sam tworca C++ pisze wyraznie na poczatku swej strony.

C++ is a general purpose programming language with a bias
towards systems programming that
  a.. is a better C  (Sektor sie zagotuje :)
  b.. supports data abstraction
  c.. supports object-oriented programming
  d.. supports generic programming.
'support' to nie znaczy 'is pure'

PS: Niech Pan nie tworzy sekty tam gdzie w ogole nie ma religii

AK
Re: Dlaczego singletony?
#16528
Author: Maciej Sobczak
Date: Mon, 23 Apr 2007 15:30
70 lines
3480 bytes
Adam Karpierz wrote:

>> Faktycznie, ta implementacja rozwi±zuje wszystkie problemy oraz spe³nia 
>> wszystkie oczekiwania ró¿nych programistów.
> 
> A jakich nie rozwiazuje ?

Może warto najpierw przeczytać, zanim się rzuci hasłem, że zmarnowano 
tyle stron tekstu?

> Konkrety ?

Od ręki - w swoim przykładzie użył Pan wyrażenia "del ta".
Niech Pan dla kompletu przedyskutuje, po co ta instrukcja i jak jej 
należy używać gdy singletonów jest wiele (różnych klas) i być może 
odwołują się do zewnętrznych zasobów.

Może coś o wątkach?


Kod, który Pan pokazał to wierzchołek góry lodowej. I uwaga, proszę się 
skupić: wersja trywialna w C++ *też* istnieje. Wspomniana książka jest 
akurat dla tych, którzy na tym trywialnym poziomie nie chcą się 
zatrzymać i są projekty, gdzie to ma sens.

>> Widzê te¿, ¿e elegancko odzwierciedla ka¿dy szczegó³ dyskusji ze 
>> wspomnianej tu ksi±¿ki.
> 
> Ta ksiazka tyczy problemow w syfiastym C++ ktore zapewne
> wystepuja tylko w nim wiec 'osochodzi' ?

Podoba mi się to "zapewne". Które z przedstawionych w tej książce 
problemów występują tylko w C++?
Konkrety?

> Tyle tylko ze szanowny kolega nie raczyl zauwazyc
> ze to co podalem to nie jest Singleton,.tzn nie stricte singleton

Monostate. Ale podał to Pan jako przykład w wątku o singletonie, jakie 
to trywialne w Pythonie (w ogóle nie odnosząc się do problemów podanych 
przez Seweryna).

> No wie Pan co mnie tam Booch at al.
> Wystarczy ze sam tworca C++ pisze wyraznie na poczatku swej strony.
> 
> C++ is a general purpose programming language with a bias
> towards systems programming that
>   a.. is a better C  (Sektor sie zagotuje :)
>   b.. supports data abstraction
>   c.. supports object-oriented programming
>   d.. supports generic programming.
> 'support' to nie znaczy 'is pure'

Co znaczy "pure"? Że nic innego nie potrafi?

A może pl.comp.objects jest tylko dla tych "pure"?
Czy Python jest "pure"?

A może Ada? Czy można na tej grupie dyskutować o Adzie? Itd.

> PS: Niech Pan nie tworzy sekty tam gdzie w ogole nie ma religii

Czy ja coś tworzę? Po prostu stwierdzam, że wymachuje Pan rękami na 
temat książki, której okładki nawet Pan nie widział, nie mówiąc o jej 
przeczytaniu.


-- 
Maciej Sobczak : http://www.msobczak.com/
Programming    : http://www.msobczak.com/prog/
Re: Dlaczego singletony?
#16529
Author: Seweryn Habdank-Wojewódzki
Date: Mon, 23 Apr 2007 15:56
54 lines
2286 bytes
Witam

Adam Karpierz wrote:

> Problem jest trywialny:
> 
> Tu stricte Pythonowe
> 
> class Singleton:
> 
>     __single_state = {}
> 
>     def __init__(self):
>         self.__dict__ = Singleton.__single_state
> 
> def main():
> 
>     ta  = Singleton()
> 
>     # tu kod
> 
>    del ta
> 
> main()

Super. To jest proste. To jeszcze poproszę o komentarza związany z wątkami.
A może jeśli Python jest językiem w którym nie muszę się martwić o detale
techniczne, to poproszę o komentarz jak to zadziała kiedy singleton ma być
użyty w wielu procesach.

Jeszcze tylko pytanie, kontrolne, czy mogę tego singletona użyć do
podglądania inicjalizacji obiektów? np. mam drugi singleton, który ma za
zadanie obserwować stan __single_state.

I czy mogę go użyć do obserwacji finalizacji obiektów, np. chcę mieć
pewność, że wszystkie połączenia z bazą danych zostały poprawnie zamknięte.

Ot. np. taki proces logowania z pamięcią np. niech numeruje wpisy do loggera
i niech rozporządza komunikatami. A może nawet taki, który potrafi
przechwycić komunikaty z wyjątków? No nie wiem, może się da. Pan jest
specjalista od Pythona.
 
>> A w ogóle to o C++ lepiej nie rozmawiać na tej grupie.
> 
> To prawda.
> Ta grupa tyczy obiektowosci a C++ nie jest jezykiem obiektowym

Python też nim nie jest ;-).

Pozdrawiam.

-- 
|\/\/|   Seweryn Habdank-Wojewódzki
 \/\/
Re: Dlaczego singletony?
#16535
Author: Jacek Pietraszek
Date: Mon, 23 Apr 2007 22:37
13 lines
1368 bytes
 dOvOb <dovob@wytnij.gazeta.pl> napisal:
> Dlaczego singleton jest przewaznie przedstawiany w C++ jako klasa o jednej
> instancji i o metodzie dostepowej (w stylu "getInstance"), a nie jako klasa ze
> wszystkimi metodami statycznymi? (cos jak przestrzen nazw, tylko niektore
> skladowe moga byc "private")
> Czy ma to jakas zalete?

Singleton jest obiektem, ktory moze miec w szczegolnosci
pola, wiec metody statyczne nie mialyby do niego dostepu.
-- 
Pozdrawiam,

Jacek
Re: Dlaczego singletony?
#16536
Author: Adam Karpierz
Date: Tue, 24 Apr 2007 00:00
23 lines
1676 bytes
Użytkownik "Jacek Pietraszek" <pmpietraUSUNTENKAWALEK@kinga.cyf-kr.edu.pl> 
napisał:

> Singleton jest obiektem, ktory moze miec w szczegolnosci
> pola, wiec metody statyczne nie mialyby do niego dostepu.

Mialyby.
Mozna uzyc pol statycznych (oczywiscie to syf w C++ bo trzeba
sztucznie poza klasa inicjowac itp chocki-klocki (jak sie pisz ? hocki czy 
chocki ? :)
Chodzi o Co innego.
Taka klasa sama z siebie nie jest obiektem.
Nie mozna jej wiec uzyc jako normalnego obiektu.
To po prostu tylko taki inny rodzaj sam nie wiem.
Modulu ? Namespacea-a ?
Zwal jak zwal.

Oczywiscie mozna tak zrobic jesli faktycznie to wystarczy
ale.. na okraglo i w C++ akurat do kitu.

(ale np juz w Pythonie bylo by to ok i bardziej naturalne).

AK.
Re: Dlaczego singletony?
#16537
Author: Maciej Sobczak
Date: Tue, 24 Apr 2007 09:18
40 lines
2254 bytes
Adam Karpierz wrote:

>> Singleton jest obiektem, ktory moze miec w szczegolnosci
>> pola, wiec metody statyczne nie mialyby do niego dostepu.
> 
> Mialyby.
> Mozna uzyc pol statycznych

Można by też ich nie użyć.

> (oczywiscie to syf w C++ bo trzeba
> sztucznie poza klasa inicjowac

Jak się ich nie używa, to nie trzeba inicjować.

> Chodzi o Co innego.
> Taka klasa sama z siebie nie jest obiektem.
> Nie mozna jej wiec uzyc jako normalnego obiektu.
> To po prostu tylko taki inny rodzaj sam nie wiem.
> Modulu ? Namespacea-a ?
> Zwal jak zwal.

Polecam wizytę w bibliotece i godzinkę studiów nt. Abstract Data Type 
vs. Abstract State Machine.

> Oczywiscie mozna tak zrobic jesli faktycznie to wystarczy
> ale.. na okraglo i w C++ akurat do kitu.

Bo tak?

> (ale np juz w Pythonie bylo by to ok i bardziej naturalne).

Co jest bardziej naturalne? Grzebanie po własnym słowniku? To tak, jakby 
ktoś w C++ jawnie manipulował w tablicy wskażników do funkcji 
wirtualnych i twierdził, że jest "naturalnie".
Najwyrażniej pojęcie naturalności jest względne.

-- 
Maciej Sobczak : http://www.msobczak.com/
Programming    : http://www.msobczak.com/prog/
Re: Dlaczego singletony?
#16538
Author: A.L.
Date: Tue, 24 Apr 2007 12:27
31 lines
1667 bytes
On Tue, 24 Apr 2007 11:18:42 +0200, Maciej Sobczak
<no.spam@no.spam.com> wrote:

>Adam Karpierz wrote:
>
>>> Singleton jest obiektem, ktory moze miec w szczegolnosci
>>> pola, wiec metody statyczne nie mialyby do niego dostepu.
>> 
>> Mialyby.
>> Mozna uzyc pol statycznych
>
>Można by też ich nie użyć.
>
>> (oczywiscie to syf w C++ bo trzeba
>> sztucznie poza klasa inicjowac
>
>Jak się ich nie używa, to nie trzeba inicjować.
>
>> Chodzi o Co innego.
>> Taka klasa sama z siebie nie jest obiektem.
>> Nie mozna jej wiec uzyc jako normalnego obiektu.
>> To po prostu tylko taki inny rodzaj sam nie wiem.
>> Modulu ? Namespacea-a ?
>> Zwal jak zwal.
>
>Polecam wizytę w bibliotece i godzinkę studiów nt. Abstract Data Type 
>vs. Abstract State Machine.

A konkretnie?... Co ma "State Machine" do rzeczy?... 

A.L.
Re: Dlaczego singletony?
#16556
Author: Adam Karpierz
Date: Tue, 24 Apr 2007 12:36
72 lines
3159 bytes
Użytkownik "Maciej Sobczak" <no.spam@no.spam.com> napisał:

>> Mialyby.
>> Mozna uzyc pol statycznych
>
> Można by też ich nie użyć.

Ano mozna.

>> (oczywiscie to syf w C++ bo trzeba
>> sztucznie poza klasa inicjowac
>
> Jak się ich nie używa, to nie trzeba inicjować.

Tez prawda !

>
>> Chodzi o Co innego.
>> Taka klasa sama z siebie nie jest obiektem.
>> Nie mozna jej wiec uzyc jako normalnego obiektu.
>> To po prostu tylko taki inny rodzaj sam nie wiem.
>> Modulu ? Namespacea-a ?
>> Zwal jak zwal.
>
> Polecam wizytę w bibliotece i godzinkę studiów nt. Abstract Data Type vs. 
> Abstract State Machine.

Wie Pan,  dzieki bardzo.
MAm zasade aby muchy nei zabijac strzalem z haubicy.

>> Oczywiscie mozna tak zrobic jesli faktycznie to wystarczy ale.. na 
>> okraglo i w C++ akurat do kitu.
>
> Bo tak?

Bo tak to juz w C++ jest zrobione ze nie mozna
pol statycznych klasy zainicjwac w momencie ich deklaracji
Dlaczego Panie Sobczak ?
Przeciez to naturalne podejscie ?

>> (ale np juz w Pythonie bylo by to ok i bardziej naturalne).
>
> Co jest bardziej naturalne? Grzebanie po własnym słowniku? To tak, jakby 
> ktoś w C++ jawnie manipulował w tablicy
>  wskażników do funkcji wirtualnych i twierdził, że jest "naturalnie".

Panie Sobczak jakie grzebanie po slowniku ?
Ono tu nie jest potrzebne.
Kalsa w Pythonie po prostu jest obiektem jak
kazdy inny i moze Pan potraktowac jak zwykly kontener
na atrybuty a uzyc jak kazdegoinnego obiektu
Tyle tylko (choc nie polecam - sa lepsze sposoby).

> Najwyrażniej pojęcie naturalności jest względne.

Tak Panie Sobczak.
Jest wzgledne bo ten slownik w Pythonie jest po prostu
_standardem_ a grzebanie po tablicy wskaznikow do funkcji
wirtualnych to chyba jakis Pana wymysl ?

Czy standard C++ zapewnie ze w ogole taka tablica istnieje
czyto tylko domniemany twor (ale nie arbitralnie zapewniony)
dla C++ owych "plaszczakow" ktorzy nie potrafia sobie
wyobrazic innej realizacji polimorfizmu poza funkcjami wirtualnymi ?

Przeciez np w Pythonie funkcja polimorficzna
(nawet funcja a nie metoda) jest zwykle:

def a(x)
   print x

AK
Re: Dlaczego singletony?
#16539
Author: Seweryn Habdank-Wojewódzki
Date: Tue, 24 Apr 2007 12:48
17 lines
1260 bytes
Witam

A.L. wrote:

>>Polecam wizytę w bibliotece i godzinkę studiów nt. Abstract Data Type
>>vs. Abstract State Machine.
> 
> A konkretnie?... Co ma "State Machine" do rzeczy?...

Konkretnie? Konkretnie to Pan jeszcze nic nie napisał. Czekamy ze
zniecierpliwieniem.

Pozdrawiam.

-- 
|\/\/|   Seweryn Habdank-Wojewódzki
 \/\/
Re: Dlaczego singletony?
#16557
Author: Seweryn Habdank-Wojewódzki
Date: Tue, 24 Apr 2007 12:59
40 lines
2106 bytes
Witam

Adam Karpierz wrote:

>>> Oczywiscie mozna tak zrobic jesli faktycznie to wystarczy ale.. na
>>> okraglo i w C++ akurat do kitu.
>>
>> Bo tak?
> 
> Bo tak to juz w C++ jest zrobione ze nie mozna
> pol statycznych klasy zainicjwac w momencie ich deklaracji

Zmartwię Pana. Da się tak zrobić, aby było dobrze. Mam tak inicjalizowany
Logger - potrafi on logować wszystko od początku powstania programu do
końca programu włącznie z funkjami wywoływanymi w atexit.

Tak na marginesie w Javie jest podobny problem, który został rozwiązany
bardzo prosto i brzydko. A nadal nie wiem jak w Pythonie robi się taki
logger, który potrafi monitorowac wszystko, przyczym inicjalizacja jest
banalna, gorzej kiedy chcę monitorować to co pójdzie w zapomnienie do GC.
Jak np. zmierzyć czas życia obiektu?

Nadal nie wiemy czemu Pan w kodzie singletona w Pythonie użył "del ta".
To w cale nie jest oczywiste.

Aha i nadal nie ma implementacji consta.

> Przeciez np w Pythonie funkcja polimorficzna
> (nawet funcja a nie metoda) jest zwykle:
> 
> def a(x)
>    print x

I co tu jest polimorficzne?

Pozdrawiam.

-- 
|\/\/|   Seweryn Habdank-Wojewódzki
 \/\/
Re: Dlaczego singletony?
#16540
Author: A.L.
Date: Tue, 24 Apr 2007 13:05
21 lines
1496 bytes
On Tue, 24 Apr 2007 14:48:26 +0200, Seweryn Habdank-Wojewódzki
<shw_mail@wp.pl> wrote:

>Witam
>
>A.L. wrote:
>
>>>Polecam wizytę w bibliotece i godzinkę studiów nt. Abstract Data Type
>>>vs. Abstract State Machine.
>> 
>> A konkretnie?... Co ma "State Machine" do rzeczy?...
>
>Konkretnie? Konkretnie to Pan jeszcze nic nie napisał. Czekamy ze
>zniecierpliwieniem.
>
>Pozdrawiam.

Ja sie nie Pana pytalem, tylko Pana Sobczaka. Bedzie Pan uprzejmy sie
nie wtracac i nie puszczac postow ktore nic nie wnosza do pytania. 

A.L.
Re: Dlaczego singletony?
#16558
Author: A.L.
Date: Tue, 24 Apr 2007 13:08
16 lines
1479 bytes
On Tue, 24 Apr 2007 14:59:40 +0200, Seweryn Habdank-Wojewódzki
<shw_mail@wp.pl> wrote:

>Witam
> 
>
>Zmartwię Pana. Da się tak zrobić, aby było dobrze. Mam tak inicjalizowany
>Logger - potrafi on logować wszystko od początku powstania programu do
>końca programu włącznie z funkjami wywoływanymi w atexit.
>
>Tak na marginesie w Javie jest podobny problem, który został rozwiązany
>bardzo prosto i brzydko. 

Nooo... Jaki i jak?...

A.L.
Re: Dlaczego singletony?
#16541
Author: Seweryn Habdank-Wojewódzki
Date: Tue, 24 Apr 2007 13:10
33 lines
2174 bytes
Witam

A.L. wrote:

>>> A konkretnie?... Co ma "State Machine" do rzeczy?...
>>
>>Konkretnie? Konkretnie to Pan jeszcze nic nie napisał. Czekamy ze
>>zniecierpliwieniem.
>>
>>Pozdrawiam.
> 
> Ja sie nie Pana pytalem, tylko Pana Sobczaka. Bedzie Pan uprzejmy sie
> nie wtracac i nie puszczac postow ktore nic nie wnosza do pytania.

Cieszę się, że nie kazał mi Pan "zamknąć gęby na kłódkę". Widzę wyraźny
wzrost kultury osobistej. Plus dla Pana.

Kolejna sprawa to poproszę o konkrety związane z implementacją singletona w
Javie. Szczególnie, że (patrz wątek o parallel computing) właśnie A.
Alexandresku dość mocno akcentuje właśnie problemy i to właśnie pokazujące
się w zagadnieniach parallel computing związane z wielowątkowością. 
Tak więc Pana krytyka 30 stron opisu singletona jest całkowicie
bezpodstawna. W szczególności, że jak na razie nic mądrego z praktycznego
punktu widzenia Pan nie powiedział o singletonach. 

Czekam na implementacje wraz z komentarzem. Podobno w Javie pisze się
szybko, więc liczę na szybki kawałek dobrego kodu.

Pozdrawiam.

-- 
|\/\/|   Seweryn Habdank-Wojewódzki
 \/\/
Re: Dlaczego singletony?
#16559
Author: Seweryn Habdank-Wojewódzki
Date: Tue, 24 Apr 2007 13:15
22 lines
1587 bytes
Witam

A.L. wrote:

>>Zmartwię Pana. Da się tak zrobić, aby było dobrze. Mam tak inicjalizowany
>>Logger - potrafi on logować wszystko od początku powstania programu do
>>końca programu włącznie z funkjami wywoływanymi w atexit.
>>
>>Tak na marginesie w Javie jest podobny problem, który został rozwiązany
>>bardzo prosto i brzydko.
> 
> Nooo... Jaki i jak?...

Jak Pan nie wie to niech Pan do czyta. To nie ja jestem tu ekspertem od
Javy. W każdym razie zadanie zostało rozwiązane skutecznie, ale nie
elegancko.

Pozdrawiam.

-- 
|\/\/|   Seweryn Habdank-Wojewódzki
 \/\/
Re: Dlaczego singletony?
#16542
Author: A.L.
Date: Tue, 24 Apr 2007 13:27
44 lines
2572 bytes
On Tue, 24 Apr 2007 15:10:02 +0200, Seweryn Habdank-Wojewódzki
<shw_mail@wp.pl> wrote:

>Witam
>
>A.L. wrote:
>
>>>> A konkretnie?... Co ma "State Machine" do rzeczy?...
>>>
>>>Konkretnie? Konkretnie to Pan jeszcze nic nie napisał. Czekamy ze
>>>zniecierpliwieniem.
>>>
>>>Pozdrawiam.
>> 
>> Ja sie nie Pana pytalem, tylko Pana Sobczaka. Bedzie Pan uprzejmy sie
>> nie wtracac i nie puszczac postow ktore nic nie wnosza do pytania.
>
>Cieszę się, że nie kazał mi Pan "zamknąć gęby na kłódkę". Widzę wyraźny
>wzrost kultury osobistej. Plus dla Pana.
>
>Kolejna sprawa to poproszę o konkrety związane z implementacją singletona w
>Javie. Szczególnie, że (patrz wątek o parallel computing) właśnie A.
>Alexandresku dość mocno akcentuje właśnie problemy i to właśnie pokazujące
>się w zagadnieniach parallel computing związane z wielowątkowością. 
>Tak więc Pana krytyka 30 stron opisu singletona jest całkowicie
>bezpodstawna. 

Nie krytykowalem owych 30 stron. Mzoe Pan przytoczyc cytat gdzie
jakkolwiek odnosibbym sie do panskiej Biblii?...

>W szczególności, że jak na razie nic mądrego z praktycznego
>punktu widzenia Pan nie powiedział o singletonach. 
>

A po co?...

>Czekam na implementacje wraz z komentarzem. Podobno w Javie pisze się
>szybko, więc liczę na szybki kawałek dobrego kodu.

Moga to zrobic dla Pana w ramach consulting. Musimy sie dogadac co do
kosztow. Ale uprzedzam: drogo wyjdzie.

A.L.
 
Re: Dlaczego singletony?
#16560
Author: A.L.
Date: Tue, 24 Apr 2007 13:28
23 lines
1829 bytes
On Tue, 24 Apr 2007 15:15:48 +0200, Seweryn Habdank-Wojewódzki
<shw_mail@wp.pl> wrote:

>Witam
>
>A.L. wrote:
>
>>>Zmartwię Pana. Da się tak zrobić, aby było dobrze. Mam tak inicjalizowany
>>>Logger - potrafi on logować wszystko od początku powstania programu do
>>>końca programu włącznie z funkjami wywoływanymi w atexit.
>>>
>>>Tak na marginesie w Javie jest podobny problem, który został rozwiązany
>>>bardzo prosto i brzydko.
>> 
>> Nooo... Jaki i jak?...
>
>Jak Pan nie wie to niech Pan do czyta. To nie ja jestem tu ekspertem od
>Javy. W każdym razie zadanie zostało rozwiązane skutecznie, ale nie
>elegancko.

No dyc ja sie pytam JAKIE zadanie?...

A.L.
Re: Dlaczego singletony?
#16563
Author: Adam Karpierz
Date: Tue, 24 Apr 2007 13:32
62 lines
2834 bytes
Użytkownik "Seweryn Habdank-Wojewódzki" <shw_mail@wp.pl> napisał:

>> Bo tak to juz w C++ jest zrobione ze nie mozna
>> pol statycznych klasy zainicjwac w momencie ich deklaracji
>
> Zmartwię Pana. Da się tak zrobić, aby było dobrze. Mam tak inicjalizowany
> Logger - potrafi on logować wszystko od początku powstania programu do
> końca programu włącznie z funkjami wywoływanymi w atexit.

A Pan o czym pisze ?

Bo ja pisze wylacznie o tym ze:
"""
Bo tak to juz w C++ jest zrobione ze nie mozna
pol statycznych klasy zainicjwac w momencie ich deklaracji
"""

> Tak na marginesie w Javie jest podobny problem, który został rozwiązany
> bardzo prosto i brzydko. A nadal nie wiem jak w Pythonie robi się taki
> logger, który potrafi monitorowac wszystko,

Ja tez nie.
Wiem tylko ze implementacja jest banalna
w stosunku do tej z C++ :).

Wszytsko ? Tzn loguje Wszechswiat ?

> przyczym inicjalizacja jest banalna,
> gorzej kiedy chcę monitorować to
> co pójdzie w zapomnienie do GC.
> Jak np. zmierzyć czas życia obiektu?

Banal.

> Nadal nie wiemy czemu Pan w kodzie singletona w Pythonie
> użył "del ta". To w cale nie jest oczywiste.

Oczywiste.
Nie uzywam - grzecznie informuje.
A wiec del ta

> Aha i nadal nie ma implementacji consta.

Panie Wojewodzki to tez nie jest trudne :)
Szczegolnie dlatego ze zupelnie niepotrzebne :)

>> Przeciez np w Pythonie funkcja polimorficzna
>> (nawet funcja a nie metoda) jest zwykle:
>>
>> def a(x)
>>    print x
>
> I co tu jest polimorficzne?

Wszystko !
Czasem niestety, a czasem na szczescie

PS: Czy Pan tu _naprawde_ nie dostrzega polimorfizmu ?
      W sumie e.. dobrze.
      W Algolu tez nie dostrzegalem "zarzadzania pamiecia:

AK
Re: Dlaczego singletony?
#16543
Author: Seweryn Habdank-Wojewódzki
Date: Tue, 24 Apr 2007 13:34
45 lines
2665 bytes
Witam

A.L. wrote:

>>Kolejna sprawa to poproszę o konkrety związane z implementacją singletona
>>w Javie. Szczególnie, że (patrz wątek o parallel computing) właśnie A.
>>Alexandresku dość mocno akcentuje właśnie problemy i to właśnie pokazujące
>>się w zagadnieniach parallel computing związane z wielowątkowością.
>>Tak więc Pana krytyka 30 stron opisu singletona jest całkowicie
>>bezpodstawna.
> 
> Nie krytykowalem owych 30 stron. Mzoe Pan przytoczyc cytat gdzie
> jakkolwiek odnosibbym sie do panskiej Biblii?...

cytuję:

"To jest 29 i pol strony za duzo. Ale widac w C++ to jest Baaaarrrdzo
Trudne!"
 
>>W szczególności, że jak na razie nic mądrego z praktycznego
>>punktu widzenia Pan nie powiedział o singletonach.
>>
> 
> A po co?...

Zatem się Pan nie zna. A jeśli się Pan nie zna, to proszę słuchać jak
bardziej doświadczeni dyskutują. Pozwalam Panu zadawać pytania w trakcie
dyskusji ze względu na szacunek do Pańskiego ogólnego doświadczenia w
sprawach computingu.
 
>>Czekam na implementacje wraz z komentarzem. Podobno w Javie pisze się
>>szybko, więc liczę na szybki kawałek dobrego kodu.
> 
> Moga to zrobic dla Pana w ramach consulting. Musimy sie dogadac co do
> kosztow. Ale uprzedzam: drogo wyjdzie.

Rozumiem, że nic Pan nie ma do powiedzenia na ten temat. Kupić singletona od
znawców Javy to sam mogę, i to jeszcze po konkurencyjnej cenie, a nie kota
w worku, bo nawet Pan nie umie swojego singletona wyspecyfikować.

Pozdrawiam.

-- 
|\/\/|   Seweryn Habdank-Wojewódzki
 \/\/
Re: Dlaczego singletony?
#16561
Author: Seweryn Habdank-Wojewódzki
Date: Tue, 24 Apr 2007 13:35
17 lines
1390 bytes
Witam

A.L. wrote:

>>Jak Pan nie wie to niech Pan do czyta. To nie ja jestem tu ekspertem od
>>Javy. W każdym razie zadanie zostało rozwiązane skutecznie, ale nie
>>elegancko.
> 
> No dyc ja sie pytam JAKIE zadanie?...

Dyć to, o którym pisał Pan A.K.

Pozdrawiam.

-- 
|\/\/|   Seweryn Habdank-Wojewódzki
 \/\/
Re: Dlaczego singletony?
#16553
Author: Maciej Sobczak
Date: Tue, 24 Apr 2007 13:37
27 lines
2075 bytes
A.L. wrote:

>>> Taka klasa sama z siebie nie jest obiektem.
>>> Nie mozna jej wiec uzyc jako normalnego obiektu.
>>> To po prostu tylko taki inny rodzaj sam nie wiem.
>>> Modulu ? Namespacea-a ?
>>> Zwal jak zwal.
>> Polecam wizytę w bibliotece i godzinkę studiów nt. Abstract Data Type 
>> vs. Abstract State Machine.
> 
> A konkretnie?... Co ma "State Machine" do rzeczy?... 

Nie "State Machine", tylko "Abstract State Machine". I nawet nie samo, 
ale właśnie w kontraście z ADT.
To w konteście problemów pana Karpierza ze znalezieniem dobrego słowa na 
klasę, która nie ma niestatycznych danych.

Terminologia ADT/ASM jest używana między innymi w metodologii INFORMED.

"Whereas an ADT package gives the ability to declare objects and then
operate on them, an abstract state machine package declares just one
object and its operations."


-- 
Maciej Sobczak : http://www.msobczak.com/
Programming    : http://www.msobczak.com/prog/
Re: Dlaczego singletony?
#16562
Author: A.L.
Date: Tue, 24 Apr 2007 13:51
27 lines
1815 bytes
On Tue, 24 Apr 2007 14:59:40 +0200, Seweryn Habdank-Wojewódzki
<shw_mail@wp.pl> wrote:

>Witam
>
>Adam Karpierz wrote:
>
>>>> Oczywiscie mozna tak zrobic jesli faktycznie to wystarczy ale.. na
>>>> okraglo i w C++ akurat do kitu.
>>>
>>> Bo tak?
>> 
>> Bo tak to juz w C++ jest zrobione ze nie mozna
>> pol statycznych klasy zainicjwac w momencie ich deklaracji
>
>Zmartwię Pana. Da się tak zrobić, aby było dobrze. Mam tak inicjalizowany
>Logger - potrafi on logować wszystko od początku powstania programu do
>końca programu włącznie z funkjami wywoływanymi w atexit.
>
>Tak na marginesie w Javie jest podobny problem, który został rozwiązany
>bardzo prosto i brzydko. A nadal nie wiem jak w Pythonie robi się taki
>logger, który potrafi monitorowac wszystko,  

A jak sie w C++ robi logger ktory potrafi monitorowac "wszystko" i co
owo "wszytko" znaczy?...

A.L.
Re: Dlaczego singletony?
#16534
Author: Seweryn Habdank-Wojewódzki
Date: Tue, 24 Apr 2007 13:51
14 lines
1135 bytes
Witam

A.L. wrote:

> A u Bruce Eckiela ("Thinking in...") znajdzie pan 50 stron na temat
> "if-then-else". Widocznie niektorym placa od strony

I ten sam Bruce Eckel nie pisze w tych 50 stronach nic o wątkach.

Pozdrawiam.

-- 
|\/\/|   Seweryn Habdank-Wojewódzki
 \/\/
Re: Dlaczego singletony?
#16533
Author: A.L.
Date: Tue, 24 Apr 2007 13:52
21 lines
1507 bytes
On Mon, 23 Apr 2007 14:46:39 +0200, Seweryn Habdank-Wojewódzki
<shw_mail@wp.pl> wrote:

>Witam
>
>dOvOb wrote:
>
>> Dlaczego singleton jest przewaznie przedstawiany w C++ jako klasa o jednej
>> instancji i o metodzie dostepowej (w stylu "getInstance"), a nie jako
>> klasa ze wszystkimi metodami statycznymi? (cos jak przestrzen nazw, tylko
>> niektore skladowe moga byc "private")
>> Czy ma to jakas zalete?
>
>Poczytaj o singletonach u Alexandrescu, to zrozumiesz różnice - 30 stron - 
>opis + podejście generyczne do tego zadania. 
>

A u Bruce Eckiela ("Thinking in...") znajdzie pan 50 stron na temat
"if-then-else". Widocznie niektorym placa od strony

A.L.
Re: Dlaczego singletony?
#16546
Author: Piotr Kobzda
Date: Tue, 24 Apr 2007 14:26
20 lines
1459 bytes
Seweryn Habdank-Wojewódzki wrote:

> Czekam na implementacje wraz z komentarzem. Podobno w Javie pisze się
> szybko, więc liczę na szybki kawałek dobrego kodu.

Proszę:

     public class Singleton {
         private Singleton() { }
         public static final Sigleton INSTANCE = new Singleton();
     }

albo (Java 1.5+):

     public enum Singleton {
         INSTANCE;
     }


piotr
Re: Dlaczego singletony?
#16544
Author: A.L.
Date: Tue, 24 Apr 2007 14:35
16 lines
1663 bytes
On Tue, 24 Apr 2007 15:34:46 +0200, Seweryn Habdank-Wojewódzki
<shw_mail@wp.pl> wrote:

 
>
>Rozumiem, że nic Pan nie ma do powiedzenia na ten temat. Kupić singletona od
>znawców Javy to sam mogę, i to jeszcze po konkurencyjnej cenie, a nie kota
>w worku, bo nawet Pan nie umie swojego singletona wyspecyfikować.
>

Prosza Pana, ja "mojego singletona" nei wyspecyfikwoalem, bo go nei
potzrebuje w tej chwili. A jak bede potzrebowal, to nei wyspecyfikuje
SUPER-SIGNLETONA KTORY MOZE WSZYSTKO tylko akurat takiego jakiego mi
potzreba.

A.L.
Re: Dlaczego singletony?
#16554
Author: A.L.
Date: Tue, 24 Apr 2007 14:36
13 lines
1334 bytes
On Tue, 24 Apr 2007 15:37:32 +0200, Maciej Sobczak
<no.spam@no.spam.com> wrote:

> 
>
>"Whereas an ADT package gives the ability to declare objects and then
>operate on them, an abstract state machine package declares just one
>object and its operations."

To powinni wybrac jakas inna nazwe, bo Abstarct State Machine mzoe
znaczyc rozne rzeczy. Nic zgola z obiektami nie majace wspolnego.

A.L.
Re: Dlaczego singletony?
#16545
Author: Seweryn Habdank-Wojewódzki
Date: Tue, 24 Apr 2007 14:57
24 lines
1974 bytes
Witam

A.L. wrote:

> Prosza Pana, ja "mojego singletona" nei wyspecyfikwoalem, bo go nei
> potzrebuje w tej chwili. A jak bede potzrebowal, to nei wyspecyfikuje
> SUPER-SIGNLETONA KTORY MOZE WSZYSTKO tylko akurat takiego jakiego mi
> potzreba.

Wiem. 

Tylko czemu Pan się wypowiada na temat książki, której Pan nie czytał, tego
nie rozumiem. I nie zgadzam się z postulatem, że singleton to banał oraz że
pełną dokładną specyfikację zamknie Pan na 0.5 strony, z czego 1/4 to opis
samego singletona, drugie 1/4 to opis wielowątkowości dla niego. Dla
wytłumaczenia. Tam jest powiedziane na 30 stronach, Pan powiedział, że o
29.5 za dużo, zatem wnioskuję, że Pan jest mocarzem i na 0.5 strony poda
Pan całą specyfikację.

Pozdrawiam.

-- 
|\/\/|   Seweryn Habdank-Wojewódzki
 \/\/
Re: Dlaczego singletony?
#16547
Author: Seweryn Habdank-Wojewódzki
Date: Tue, 24 Apr 2007 15:01
33 lines
1842 bytes
Witam

Piotr Kobzda wrote:

> Seweryn Habdank-Wojewódzki wrote:
> 
>> Czekam na implementacje wraz z komentarzem. Podobno w Javie pisze się
>> szybko, więc liczę na szybki kawałek dobrego kodu.
> 
> Proszę:
> 
>      public class Singleton {
>          private Singleton() { }
>          public static final Sigleton INSTANCE = new Singleton();
>      }
> 
> albo (Java 1.5+):
> 
>      public enum Singleton {
>          INSTANCE;
>      }

Prawda, że się nabijasz z Pana A.L.? 

Widzę że nie zarobi Pan A.L. ani centa, bo konkurencyjna oferta sama się
pojawiła, jeszcze tylko komentarz nt. wątków oraz współpracy z innymi
singletonami i jestem skory kupić tą implementację.

Pozdrawiam.

-- 
|\/\/|   Seweryn Habdank-Wojewódzki
 \/\/
Re: Dlaczego singletony?
#16555
Author: Adam Karpierz
Date: Tue, 24 Apr 2007 15:45
31 lines
2257 bytes
Użytkownik "Maciej Sobczak" <no.spam@no.spam.com> napisał:

> To w konteście problemów pana Karpierza ze znalezieniem dobrego
> słowa na  klasę, która nie ma niestatycznych danych.

A po co specjalne slowo ?
Ja uciekam od wszelkich "specjalnych slow".
W Pythonie klasa ktora nie majaca "niestatycznych danych"
_nieczym sie nie rozni_ od klasy ktora te "statyczne dane" ma.

Poza tym Pan myli rzeczy.
To nie sa zadne "statyczne dane" klasy.
To slownictwo wprowadzil glupio C++ bo tam po prostu klasa
_nie moze miec atrybutow_ bo nie jest obiektem.
Wiec to nie sa zadne "statyczne dane klasy" tylko
zewnetrzne publiczne zmienne jedynie "znamespaceowane" klasa.

Wiec prosze Pana to o czym mowimy to sa aktrybuty klasy po prostu.
Klasa z atrybutami klasy moze wlasie sluzyc jako baza do implemnentacji
singletona
Niech  Pan sie wyzwoli z C++owego myslenie na chwile.

> Terminologia ADT/ASM jest używana między innymi w metodologii INFORMED.
>
> "Whereas an ADT package gives the ability to declare objects and then
> operate on them, an abstract state machine package declares just one
> object and its operations."

Pann dalej wali haubicami po muchach.

AK
Re: Dlaczego singletony?
#16548
Author: Piotr Kobzda
Date: Tue, 24 Apr 2007 16:14
43 lines
2492 bytes
Seweryn Habdank-Wojewódzki wrote:
> Witam
> 
> Piotr Kobzda wrote:
> 
>> Seweryn Habdank-Wojewódzki wrote:
>>
>>> Czekam na implementacje wraz z komentarzem. Podobno w Javie pisze się
>>> szybko, więc liczę na szybki kawałek dobrego kodu.
>> Proszę:
>>
>>      public class Singleton {
>>          private Singleton() { }
>>          public static final Sigleton INSTANCE = new Singleton();
>>      }
>>
>> albo (Java 1.5+):
>>
>>      public enum Singleton {
>>          INSTANCE;
>>      }
> 
> Prawda, że się nabijasz z Pana A.L.? 

Nie.  Wypowiedzi Pana A.L. cenię, jak mało które.


> Widzę że nie zarobi Pan A.L. ani centa, bo konkurencyjna oferta sama się
> pojawiła, jeszcze tylko komentarz nt. wątków oraz współpracy z innymi
> singletonami i jestem skory kupić tą implementację.

Wg mnie komentarz jest zbędny.

Interakcja klas i obiektów w środowisku wielowątkowym to temat złożony, 
niewiele związany z singletonami jako takimi.  Trzeba wiedzieć np., że 
inicjalizacja kalsy jest zsynchronizowana, przez co może się zakleszczyć 
jeśli powiązana jest z interakcją z innych wątków, podobnie jak wiedzieć 
trzeba co zrobić, aby singleton był serialiowowalny itp.  Nie dotyczy 
jednak ten komentarz już Twojej potrzeby, na którą odpowiedziałem, tak 
przynajmniej mi się zdaje.


piotr
Re: Dlaczego singletony?
#16530
Author: Adam Karpierz
Date: Tue, 24 Apr 2007 16:23
25 lines
1742 bytes
Użytkownik "Seweryn Habdank-Wojewódzki" <shw_mail@wp.pl> napisał:

> Super. To jest proste. To jeszcze poproszę o komentarza związany z 
> wątkami.
> A może jeśli Python jest językiem w którym nie muszę się martwić o detale
> techniczne, to poproszę o komentarz jak to zadziała kiedy singleton ma być
> użyty w wielu procesach.

@synchronized
class Singleton:

To zalatwia watki procesy itp

Chce Pan inaczej ?

ta = Singleton()
with threading.Lock():
    ta.x = 4    ta.y = 'tralala;Tylko nech sie Pan zdecyduje czy to ma byc 
singleton czy model
Wszechswiata bo w drugi przypadku obawiam
sie ze nie zmieszcze tego nawet na 50 stronach
(mimo ze Alexandrescu zmeiscil na 30:)
a przed emerytura moge nie zdazyc..

AK 
Re: Dlaczego singletony?
#16551
Author: Adam Karpierz
Date: Tue, 24 Apr 2007 16:26
7 lines
1362 bytes
Użytkownik "Piotr Kobzda" <pikob@gazeta.pl> napisał:

> niewiele związany z singletonami jako takimi.

Dokladnie !

AK 
Re: Dlaczego singletony?
#16549
Author: A.L.
Date: Tue, 24 Apr 2007 16:30
20 lines
1854 bytes
On Tue, 24 Apr 2007 18:14:37 +0200, Piotr Kobzda <pikob@gazeta.pl>
wrote:
 
>
>Interakcja klas i obiektów w środowisku wielowątkowym to temat złożony, 
>niewiele związany z singletonami jako takimi.  Trzeba wiedzieć np., że 
>inicjalizacja kalsy jest zsynchronizowana, przez co może się zakleszczyć 
>jeśli powiązana jest z interakcją z innych wątków, podobnie jak wiedzieć 
>trzeba co zrobić, aby singleton był serialiowowalny itp.  Nie dotyczy 
>jednak ten komentarz już Twojej potrzeby, na którą odpowiedziałem, tak 
>przynajmniej mi się zdaje.
>
>

Proponuje odeslac pana Wojewodzkiego do jakeijs elementarnej
litaertury, na przykald tutaj

http://www.javaworld.com/javaworld/jw-04-2003/jw-0425-designpatterns.html

A,L.
Re: Dlaczego singletony?
#16565
Author: SasQ
Date: Tue, 24 Apr 2007 18:24
16 lines
1554 bytes
Dnia Tue, 24 Apr 2007 02:00:53 +0200, Adam Karpierz napisał(a):

> Mozna uzyc pol statycznych (oczywiscie to syf w C++ bo
> trzeba sztucznie poza klasa inicjowac itp chocki-klocki
> [...]
> Oczywiscie mozna tak zrobic jesli faktycznie to wystarczy
> ale.. na okraglo i w C++ akurat do kitu.
>
> (ale np juz w Pythonie bylo by to ok i bardziej naturalne).

Heh... Ten to znajdzie każdą możliwą okazję, żeby trochę
poopluwać C++ i pochwalić sie swoim [bez skojarzeń ;J] Pytonem :P
Masz jakąś traumę czy co? :P

-- 
SasQ
Re: Dlaczego singletony?
#16566
Author: Adam Karpierz
Date: Tue, 24 Apr 2007 19:21
9 lines
1241 bytes
Użytkownik "SasQ" <sasq1@go2.pl> napisałŁó

> Heh... Ten to znajdzie każdą możliwą okazję, żeby trochę
> poopluwać C++ i pochwalić sie swoim [bez skojarzeń ;J] Pytonem :P
> Masz jakąś traumę czy co? :P

Tak ! 20 letnia.

AK
Re: Dlaczego singletony?
#16564
Author: Seweryn Habdank-Wojewódzki
Date: Tue, 24 Apr 2007 20:51
115 lines
4058 bytes
Witam

Adam Karpierz wrote:

>> Zmartwię Pana. Da się tak zrobić, aby było dobrze. Mam tak inicjalizowany
>> Logger - potrafi on logować wszystko od początku powstania programu do
>> końca programu włącznie z funkjami wywoływanymi w atexit.
> 
> A Pan o czym pisze ?
> 
> Bo ja pisze wylacznie o tym ze:
> """
> Bo tak to juz w C++ jest zrobione ze nie mozna
> pol statycznych klasy zainicjwac w momencie ich deklaracji
> """

Tak, to prawda, tylko, że jest na to sposób natomiast natomiast zrozumienie
tego zagadnienia głębiej pozwala na analizę statyczną programu w
szczególności sekwencji wywołań konstruktorów statycznych oraz zakańczania
życia obiektów statycznych.

Jeszcze raz (bez żadnej złośliwości) tak jak początek programu w Pythonie
jest w miarę oczywisty, tak koniec, a szczególnie sekwencja końcowa nie.
 
>> Tak na marginesie w Javie jest podobny problem, który został rozwiązany
>> bardzo prosto i brzydko. A nadal nie wiem jak w Pythonie robi się taki
>> logger, który potrafi monitorowac wszystko,
> 
> Ja tez nie.
> Wiem tylko ze implementacja jest banalna
> w stosunku do tej z C++ :).

A jest jakiś pouczający pouczający przykład?
 
> Wszytsko ? Tzn loguje Wszechswiat ?

Cytuję sam siebie:

"
potrafi on logować wszystko od początku powstania programu do
końca programu włącznie z funkjami wywoływanymi w atexit
"

>> przyczym inicjalizacja jest banalna,
>> gorzej kiedy chcę monitorować to
>> co pójdzie w zapomnienie do GC.
>> Jak np. zmierzyć czas życia obiektu?
> 
> Banal.

Aha, rozumiem. A może jakiś link, albo pozycja książkowa.
 
>> Nadal nie wiemy czemu Pan w kodzie singletona w Pythonie
>> użył "del ta". To w cale nie jest oczywiste.
> 
> Oczywiste.
> Nie uzywam - grzecznie informuje.
> A wiec del ta

Cytuję:

"
class Singleton:

    __single_state = {}

    def __init__(self):
        self.__dict__ = Singleton.__single_state

def main():

    ta  = Singleton()

    # tu kod

   del ta

^^^^^^^^^^^^^^^^^^^^

main()
"

A co jeśli jakiś inny moduł załaduje ten moduł, to jak się usadowi
singleton?
Albo co jeśli ten singleton jest loggerem i ma za zadanie sprawdzać
finalizację pozostałych obiektów w programie, gdzie należy napisać del ta?
 
>> Aha i nadal nie ma implementacji consta.
> 
> Panie Wojewodzki to tez nie jest trudne :)
> Szczegolnie dlatego ze zupelnie niepotrzebne :)

Hmm... czy nie potrzebne to jest dyskusyjne. Są całe rozprawy na temat
obiektów które mają za zadanie pilnowania niezmienników w programie.
 
>>> Przeciez np w Pythonie funkcja polimorficzna
>>> (nawet funcja a nie metoda) jest zwykle:
>>>
>>> def a(x)
>>>    print x
>>
>> I co tu jest polimorficzne?
> 
> Wszystko !
> Czasem niestety, a czasem na szczescie
> 
> PS: Czy Pan tu _naprawde_ nie dostrzega polimorfizmu ?

No jeśli wszystko to jest to jasne, myślałem o jakimś wyrafinowanym tricku.

Pozdrawiam.

-- 
|\/\/|   Seweryn Habdank-Wojewódzki
 \/\/
Re: Dlaczego singletony?
#16531
Author: Seweryn Habdank-Wojewódzki
Date: Tue, 24 Apr 2007 21:21
30 lines
1513 bytes
Witam

Adam Karpierz wrote:

> @synchronized
> class Singleton:
> 
> To zalatwia watki procesy itp
> 
> Chce Pan inaczej ?
> 
> ta = Singleton()
> with threading.Lock():
>     ta.x = 4    ta.y = 'tralala;

Elegancko.

>     Tylko nech sie Pan zdecyduje czy to ma byc 
> singleton 

Cały czas mowa o Singletonach. Ale jednak choćby się Pan wściekła to tego
kodu z pełnym komentarzem nie upakuje Pan na 0.5 strony jak chciał Pan A.L.

Jeszcze parę słów o tym kiedy on rozpoczyna i kończy żywot chętnie usłyszę.

Pozdrawiam.

-- 
|\/\/|   Seweryn Habdank-Wojewódzki
 \/\/
Re: Dlaczego singletony?
#16552
Author: Seweryn Habdank-Wojewódzki
Date: Tue, 24 Apr 2007 21:31
56 lines
3072 bytes
Witam

Piotr Kobzda wrote:

>>>> Czekam na implementacje wraz z komentarzem. Podobno w Javie pisze się
>>>> szybko, więc liczę na szybki kawałek dobrego kodu.
>>> Proszę:
>>>
>>>      public class Singleton {
>>>          private Singleton() { }
>>>          public static final Sigleton INSTANCE = new Singleton();
>>>      }
>>>
>>> albo (Java 1.5+):
>>>
>>>      public enum Singleton {
>>>          INSTANCE;
>>>      }
>> 
>> Prawda, że się nabijasz z Pana A.L.?
> 
> Nie.  Wypowiedzi Pana A.L. cenię, jak mało które.

A ja znam Twoje wypowiedzi z grupy o Javie i uważam, że ten kawałek kodu
jest ok, ale jego komentarz jest poniżej Twojego poziomu. Używając Twoich
słów:

(Ja) Wypowiedzi Piotra Kobzdy cenię, jak mało które.

> Interakcja klas i obiektów w środowisku wielowątkowym to temat złożony,
> niewiele związany z singletonami jako takimi.  Trzeba wiedzieć np., że
> inicjalizacja kalsy jest zsynchronizowana, przez co może się zakleszczyć
> jeśli powiązana jest z interakcją z innych wątków, podobnie jak wiedzieć
> trzeba co zrobić, aby singleton był serialiowowalny itp.  Nie dotyczy
> jednak ten komentarz już Twojej potrzeby, na którą odpowiedziałem, tak
> przynajmniej mi się zdaje.

A jeszcze parę słów o zagadnieniu statycznej inicjalizacji i sekwencji,
która jest z tym związana? Czyli kiedy singletony są zależne (nie chodzi o
cykl, tylko o zwykłą zależność).

Tak na marginesie, to nie zależnie od tego, czy wątki i procesy
synchronizacji są związane z singletonami, czy nie, to Pan A.L. krytykę
zastosował całkiem innego kalibru niż Ty.

To co napisałeś powyżej świadczy o znajomości tematu, a dalej nie piszesz
źle o książce której nie znasz.

Pozdrawiam.

Ps. Niestety nasz przykład pokazuje, że relacja uznawania zdania jest ine
przechodnia :-).

-- 
|\/\/|   Seweryn Habdank-Wojewódzki
 \/\/
Re: Dlaczego singletony?
#16550
Author: Seweryn Habdank-Wojewódzki
Date: Tue, 24 Apr 2007 21:40
29 lines
2060 bytes
Witam

A.L. wrote:

> Proponuje odeslac pana Wojewodzkiego do jakeijs elementarnej
> litaertury, na przykald tutaj
> 
> http://www.javaworld.com/javaworld/jw-04-2003/jw-0425-designpatterns.html

No toś się Pan wykazał. Dziękuję bardzo, rewelacja. 

I Pan sugerował, że temat zamknie Pan w 0.5 strony!!!

Tam stron jest 4 maleńkim literkami - po wydrukowaniu też wyjdzie ze 30, a
wszystko nt. singletona. 
I też jest opisane zagadnienie pod kątem wątków i całej masy spraw, które
ponoć nie są związane z singletonem, tylko poco kolejny autor o nich pisze.
A może to jest jakaś Pańska ukryta drwina?

A mi Pan opowiada bajki, że temat jest banalny. Sam Pan sobie zaprzeczył.

Mało tego nadal nie uważam, że temat nie jest banalny. Temat nie jest
trudny, ale do banalnych nie należy.

Pozdrawiam.

-- 
|\/\/|   Seweryn Habdank-Wojewódzki
 \/\/
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads