Wpis z mikrobloga

Potrzebuje nieco pomocy przy sposobie organizacji projektu. Nie znam się niestety na wzorcach a to jest idealny moment, żeby się poznać. Ale jaki i dlaczego wybrać? Jak to dalej zaimplementować, żeby nie zrobić kaszanki z kodu?
na razie to jest główny program
To coś działa. Ale będzie wymagało mnóstwa caseów, chociaż pętla główna znacznie się uprości w stosunku do tego co było kiedyś.
To co widać - na początku wywołuję funkcję action(...) na rzecz wybranego obiektu, obiekt robi to co trzeba w zależności od tego jaki klawisz został wybrany (to znaczy rysuje na nowo widok ekranu bo coś się zmieniło) i zwraca stan, w jakim teraz powinien znaleźć się program. Stan wpada w switch case i na jego podstawie klasa program wykona to co trzeba zrobić z obiektami (np. obliczyć wartość wyrażenia, pokazać helpa, wyczyścić bufor wejścia itp) oraz ustawia właściwy stan i aktywny obiekt dla następnej akcji wciśnięcia klawisza.
Czy to dobry sposób?
#naukaprogramowania
#kalkulatoranalityczny
#cplusplus

Pobierz A.....k - Potrzebuje nieco pomocy przy sposobie organizacji projektu. Nie znam się ni...
źródło: comment_JSDcxBqIKO2YmqawGGvrSfdylaQRK5b9.jpg
  • 4
@Analityk: Jest ok, dla tych Procków unikałbym urzywania stałych globalnych. switch case jest tu bardzo dobrym rozwiązaniem. Niby różnica pomiędzy korzystaniem z switcha a korzystaniem z tablicy wskaźników na funkcje jest niewielka (no dobra tutaj https://goo.gl/kUAWKf +50% do https://goo.gl/QzBgrJ ale to dlatego że funkcje są niewielkie).

Straszne się z tym zakręciłeś, np nie widać, za co zmienna state jest odpowiedzialna.
Jak dla mnie to ona dubluje zawartość wskaźnika windowsInterface, którego to
@lionbest: dzięki za uwagi. No właśnie chciałbym to uprościć, upchnąć jakiś schemat lub wzorzec. O zasoby jestem spokojny, na razie zajmuje 10k pamięci ze 128k i 1kB ramu z 8kB.
Enum state to stan w jakim znalazł sie program po akcji użytkownika. Wypisałem je dla świadomości ile tego jest, i że każdy taki przypadek wymaga określonej akcji, dlatego na tym bazuje. Za to w tej chwili zupełnie nie używam żadnego wzorca
@Analityk: Najpierw wydziel sobie stany, które są niezależne. Potem dopiero pomyśl która klasa powinna się tym zajmować. Jeżeli masz wiele instancji okien, to każda z nich będzie miała stan niezależny. Następnie łatwiej będzie ci określić, czym dana klasa powinna się zajmować.