Cześć.
W ramach nauki chcę napisać konwerter liczb (np. z binarnego na dziesiętny itp). Wymyśliłem takie wymagania:
- interfejs graficzny:
* użytkownik wybiera z jakiego systemu na jaki konwertuje (menu rozwijane)
* użytkownik wprowadza liczbę (textbox), naciska przycisk, a wynik wyświetla się w drugim textboxie - początkowo dostępne bin -> dec oraz dec -> bin
- rozbudowa o kolejne opcje (np. hex -> bin itp.)
Tu pojawia się moje pytanie. Jak to wszystko zaprojektować. Czy dla każdej konwersji robić oddzielną klasę (np. Bin2Dec, Dec2Bin itp.)? Zrobiłbym jakiś interfejs i podczas rozbudowywania o nowe opcje nowe klasy musiałyby ten interfejs implementować.
Tylko w takim wypadku w zależności od wyboru użytkownika tworzony byłby jeden obiekt i on wykonywałby całą pracę. To może klasa statyczna? Albo singleton (chociaż czy to nie będzie przerost formy nad treścią)?
A może ogólna klasa Logic, która będzie miała odpowiednie metody. I w zależności od wyboru użytkownika z tej metody będzie korzystać. Tutaj jednak istnieje ryzyko, że za sprawą dalszej rozbudowy kod klasy znacznie się wydłuży.
Będę wdzięczny za porady. Zakodzić to zakodzę, ale najgorzej u mnie z rozplanowywaniem.
PS chciałbym napisać to w C# (WPF)