Komunikacja między dziećmi.

Dział z pytaniami o absolutne podstawy programowania w C# (dla początkujących).

Moderator: xxSlayeRxx

Re: Komunikacja między dziećmi.

Sponsor

Sponsor
 

Re: Komunikacja między dziećmi.

Postprzez perlon » Pn paź 12, 2015 6:17 pm

No to się podziel bo jak ktoś kiedyś np. ja znajdę taki wątek to się z niego niewiele dowiem.
perlon
New member
 
Posty: 1
Dołączył(a): Pn maja 12, 2014 9:23 pm

Re: Komunikacja między dziećmi.

Postprzez xxSlayeRxx » Wt paź 13, 2015 7:09 pm

Przykro mi to mówić, ale Twoje rozwiązanie też jest złe:
-jak będziesz miał wiele do wielu okien to w rodzicu śmietnik się zrobi
-nowy rodzic, znów to samo (ponowna implementacja)
-rodzic nie jest po to aby zestawiać połączenia (SRP)

Proponowałbym https://msdn.microsoft.com/en-us/library/ff647328.aspx

Najprościej:
Masz MessageBus, przekazujesz w dzieci (w konstruktorze), tam podpinają do prywatnego pola, oraz się subskrybują (Observer pattern)
Masz klasę Message(From,To, Type, Text) i zamiast wysyłać string to wysyłasz Message

Okienka maja metodę Recive(Message) gdzie to okienko decyduje czy coś z tym robić.
MessageBus ma Send(Message), gdzie przekazuje po prostu wszystkim podpiętym.

Wiem, że logikę przekazywania maili powinno się wstawić w MessageBuss (jesli Do FormA to tylko FormA dostanie), ale na początek nie jest to potrzebne.
xxSlayeRxx
Member
 
Posty: 661
Dołączył(a): Pt lip 08, 2011 10:24 pm

Re: Komunikacja między dziećmi.

Postprzez xxSlayeRxx » Śr paź 14, 2015 4:35 pm

Ajgor napisał(a):Hmm... Z tego, co wyczytałem na MSDN, Message służy do przesyłania maili, i ewentualnie przesyłania wiadomości między klientami w sieci, a nie do komunikacji między okienkami w ramach jednego ptogramu. Może coś źle zrozumiałem. Jeszcze poczytam

To jest tylko skala, Ty nie potrzebujesz mechanizmów ponawiania itp, raczej uproszczoną wersję, ale zasada działania jest ta sama

Ajgor napisał(a):Być może. Opisałem metodę na którą sam wpadłem.

tak, ale napisałeś też
Dodam, że można to zrobić inaczej. Bez delegata i prościej, ale jest to niepolityczne i doświadczeni programiści moczą się w nocy na samą myśl o takich rozwiązaniach 8)

Jednakże to rozwiązanie też nie jest poprawne, chciałem to zaznaczyć oraz zaproponować rozwiązanie.

Wyobraź sobie taki problem:
Masz Rodzica [R] i 10 dzieci [D1,D2,...]
R Komunikuje się z wszystkimi dziećmi
R wysyła wiadomości WA do D1-D5
R wysyła wiadomości WB do D6-D10
Parzyste D wysyłają wiadomości WC do parzystych D
Nieparzyste D(x) wysyłają wiadomości WD do D(x+1) (czyli nieparzyste do następnego okienka)

Specjalnie przesadziłem, ale kto wie jaka będzie komunikacja, teraz wyobraź sobie Twoje rozwiązanie dla tego problemu

Natomiast w MessageBus:

Ustawiasz grupy rodzicowi i dziecku, oraz grupę z numerem okna
R new message(rodzic, dzieci, uaktualnij licznik, wartosc)
R new message(rodzic, G1-5, costam, wartosc)
Dx(parzyste) new message(Dx, GP, inny typ, wartosc)
Dx(nieparzyste) new message(Dx, Dx+1, inny typ, wartosc)

Kwestje obsługi po stronie metody odbierającej pozostawiam Tobie
xxSlayeRxx
Member
 
Posty: 661
Dołączył(a): Pt lip 08, 2011 10:24 pm

Re: Komunikacja między dziećmi.

Sponsors

Sponsor
 


Powrót do Newbie

Kto przegląda forum

Użytkownicy przeglądający ten dział: Bing [Bot] i 5 gości

cron