Strona 1 z 1

prawidłowy design pattern

: 10 paź 2012 03:14
autor: sendrill
Witam, po przeczytaniu wielu wątków forum i spędzeniu wielu godzin przy tworzeniu mojej aplikacji doszedłem do wniosku ze model oparty o jedną petle while kiedy mamy do czynienia z interfejsem i częścią przetwarzająca dane nie jest najlepszym rozwiązaniem ;)
Uproszczony model aplikacji wygląda tak:
model.png
Do tego nalezy dodać standardową maszynę stanów realizująca funkcjonalność 3 przycisków które zmieniają aktualnie wyświetlane dane.
maszyna_stanow.png
maszyna_stanow.png (8.57 KiB) Przejrzano 17025 razy
.
Potrzebuje pomocy z zdefiniowaniem jak powinna wyglądać prawidłowa sktruktura programu/ jak połączyc maszyne stanow z petla przetwarzajaca dane z elementu visa. Wydaje mi się ze optymalnym wyborem jest struktura producent/konsument ale nie wiem gdzie co powinno sie znajdować. Czy w takim przypadku element visa powinien znajdować sie wraz z obsługa przyciskow w petli producenta a pozostała funkcjonalność "bardzo skomplikowanych obliczen" wraz z wykresami w petli konsumenta? Prosze o pomoc i wyjasnienie.

prawidłowy design pattern

: 10 paź 2012 17:01
autor: sendrill
nikt?

prawidłowy design pattern

: 10 paź 2012 18:53
autor: sendrill

Re: prawidłowy design pattern

: 11 paź 2012 07:57
autor: Pitol
To, że się nikt nie odezwał, nie znaczy, że Cie olewamy. Nie każdy może w tym temacie się wypowiadać, bo to nie jest coś trywialnego. Sam chciałem Ci napisać, ale nie miałem czasu na to. Cieszę się, że sam znalazłeś rozwiązanie.

A pisanie trzech postów pod rząd jest niezgodne z regulaminem. Następnym razem będę usuwał posty bez ostrzeżenia.

Re: prawidłowy design pattern

: 11 paź 2012 23:38
autor: sendrill
Proszę o wybaczenie za zdublowane posty, wydawało mi się ze nie jest to jakieś trudne zagadnienie.
Niestety nie udało mi się osiągnąć pożądanego rezultatu. W załączniku uproszczony problem na przykładzie zegarka. Nie wiem jak ustawić na wyświetlaczu stałej wartości min lub godziny tak aby ona nie znikała.(nie wchodzi w gre usunięcie timeoutu)

Re: prawidłowy design pattern

: 12 paź 2012 01:54
autor: smiga
Po drobnej modyfikacji:

Re: prawidłowy design pattern

: 12 paź 2012 11:46
autor: TMa
Poprawiłbym obsługę naciśnięcia przycisku STOP poprzez dodanie pakietu zamykającego pętle konsumenta.

Teraz po obsłudze przycisku STOP następuje zamknięcie kolejki co z kolei generuje błąd przy pobieraniu elementu w pętli konsumenta. I wystąpienie błędu jest powodem zakończenia aplikacji.

prawidłowy design pattern

: 12 paź 2012 15:01
autor: Mikrobi
...i to jest prawidłowy sposób zamykania takiej pętli.

prawidłowy design pattern

: 12 paź 2012 16:44
autor: sendrill
a jak dołozyć do tego stan aby domyślnie na początku wysyłane były godziny?

prawidłowy design pattern

: 12 paź 2012 16:50
autor: TMa
sendrill pisze:a jak dołozyć do tego stan aby domyślnie na początku wysyłane były godziny?
dołóż zakolejkowanie pakietu inicjującego konsumenta przed wejściem w petle producenta
Mikrobi pisze:...i to jest prawidłowy sposób zamykania takiej pętli.
Celowe wywołania błędu w aplikacji jest sposobem na zakończenie jej pracy? Mało w tym elegancji...

Re: prawidłowy design pattern

: 12 paź 2012 18:11
autor: sendrill
okazało ze jednak rozwiązanie nie spełnia wymogów ponieważ na wyświetlaczu nie jest pokazywana aktualna godzina tylko ta w momencie wykonania się eventu. Jak w takim razie wykonać strukturę która pokazuje aktualna godzinę/min w zależnosci od wybranego przycisku. (umknęło mi to przy pisaniu posta)
Edit: wystaczy dodac dodatkowo case i zmienne lokalne

Re: prawidłowy design pattern

: 12 paź 2012 20:25
autor: Mikrobi
TMa pisze:
sendrill pisze:a jak dołozyć do tego stan aby domyślnie na początku wysyłane były godziny?
dołóż zakolejkowanie pakietu inicjującego konsumenta przed wejściem w petle producenta
Mikrobi pisze:...i to jest prawidłowy sposób zamykania takiej pętli.
Celowe wywołania błędu w aplikacji jest sposobem na zakończenie jej pracy? Mało w tym elegancji...
W tym wzorcu aplikacji ten akurat rodzaj błędu wystąpi tylko w jednej określonej sytuacji: jeśli przestanie pracować pętla producenta. Jeśli nie pracuje to znaczy że zakończyła pracę, zatem nie ma na co czekać - nie ma już referencji do kolejki. Błąd jest tą właśnie informacją.
Oczywiście można raz jeszcze poszukiwać idealnego kształtu dla koła...
;)

Re: prawidłowy design pattern

: 14 paź 2012 10:58
autor: smiga
Może i Kolega ma rację, że było by troszkę bardziej elegancko ... ale teraz jest metodycznie - mało zmieniło się w kodzie właściciela, a zauważa on dodatkową funkcjonalność :-)

Czas jednak odpowiedzieć na pytanie Sendrill'a ... bo zmienne lokalne też nie są eleganckie :-) Właściwie stosując zmienne lokalne nie musimy budować struktury producent/konsument, a jednak to robimy.
Sposobów na rozwiązanie Twojego problemu wyświetlania aktualnej daty jest wiele. Mnie przyszedł do głowy poniższy (znowu delikatnie zmodyfikowałem Twój kod ... czyli na bank można fajniej :-) )

Re: prawidłowy design pattern

: 14 paź 2012 16:10
autor: sendrill
w tym programie na pewno nie są potrzebne, pisałem to w kontekscie bardziej złożonego programu.

Re: prawidłowy design pattern

: 14 paź 2012 17:29
autor: smiga
Zmienne lokalne z zasady nigdy nie są potrzebne ... ale często są prostsze, szybsze w użyciu... :-)
Jak chcesz używać zmiennych i ma być elegancko to zastosuj FGV.