Cześć
Jestem na etapie czyszczenia swojej pierwszej aplikacji i mam pewne pytanie do bardziej doświadczonych kolegów.
Powiedzmy ze główna forma danych w aplikacji są obiekty klasy Item. Klasa ta ma 4 typy: Income, Expense, Debt i Savings. Każdy z tych typów używa pewnych parametrów klasy, a pewnych nie. Każdy z nich należy do jakiejś podkategorii -> kategorii -> typu. wszystkie te kolekcje są osobnymi klasami, zawierającymi w sobie kolekcje swojej "podklasy".
w pewnym momencie okazało się ze każda z typów dodaje do klasy nowe parametry, poza tymi które są wspólne. Finalna wersja posiada 12 parametrów. To trochę dużo. Staram się rozwiązać ten problem przy pomocy dziedziczenia i stworzyłem klasę bazową Item i jej podklasy, analogicznie do typów. I tu pojawia się problem ponieważ wątek który ma edytować dane, dostaje od poszczególnej strony obiekt klasy którą ta strona reprezentuje. Na przykład:
private void AddButton_Click(object sender, RoutedEventArgs e)
{
Income newItem = new Income();
Frame.Navigate(typeof(UpdateData), newItem);
}
Teraz podczas odpalenia funkcji OnNavigatedTo, strony UpdateData zostaje stworzony obiekt klasy Item. Błąd już powinien być wyraźny. Strona nie wie jaką klasę dziedziczoną dostaje. Nie ma również sposobu na przekonwertowanie klasy bazowej na klasę dziedziczoną. I teraz jak ten problem rozwiązać? Zostawić bałagan w modelu danych i pozostawić 12-to parametrową klasę, czy może użyć 50-o linijkowej funkcji decydującej o tym jakiego typu ma być nowy obiekt?
z góry przepraszam za wszelką ignorancję, której ktoś mógłby się dopatrzeć. Na swoją obronę mogę tylko powiedzieć, że to dopiero 3 miesiąc przygody z programowaniem, więc pewne idee mogą mi się jeszcze trochę mieszać :)
z góry dzięki za odpowiedź