Przykładowo nawet w aplikacji bankowej klient może mieć różne produkty, także też będzie przykładowy obiekt Client mieć listę typów Produkt po których będą dziedziczyć np. Kredyt, Pożyczka itp. Może ja czegoś nie widze i takie modele da się jakoś inaczej stworzyć niż w ten sposób? Będę wdzięczny za każdą wskazówkę jak do takich problemów podchodzić. — CSharpBeginner dziś, 09:41
Produkty bankowe jedynie rozsądne co mi się wydaje, dziedziczyć do grup: kredyt, rachunek operacyjny, lokata. A konkretny kredyt to tylko konfiguracja ogólnego kredytu.
I tyle dziedziczenia. Klasa kredyt ciągnie za sobą tematy zabezpieczenia, klasa Lokata tematy podatku Belki, klasa RachunkuPłatniczego (w tym karty) integrację z rzeczywistym realizatorem operacji. To są duże grupy zagadnień, i dziedziczenie to dobrze odzwierciedla.
Za 5 lat się pojawi (w trakcie rozwoju banku) klasa RachunkuInwestycyjnego, i to tyle dziedziczenia. Hierarchia klas jest relatywnie zamknięta i wolno zmienna.
Wszystko inne to nie dziedziczenie (jest, jabłko jest owoc), a relacja posiadania (kompozycja), np posiadanie konkretnej konfiguracji "kredyt za zero złotych ze zdjęciem Lewandowskiego"
To jest tylko przykład bardziej chodzi o idee. Dam inny, np. mamy klasę Person, który ma listę Vehicles. Po Vehicles może dziediczyć wiele klas jak Car, Motorcycle itp., każda z nich ma różne atrybuty/pola. Jak podejść do utworzenia encji dla takiej klasy? I jak zapisywać. — CSharpBeginner 2022-04-02 22:26
Nigdy.
Niestety, mapowanie obiektowo relacyjne to z istoty zagadnienia znaczny problem, tam nie ma samego miodu.
Trzeba z góry podporządkować myślenie projektowe.
W szczególności nie dziedziczyć po szkolnemu.