Witam. Mam klasy serwisowe w springu odpowiedzialne za operacje na różnego rodzaju kontach. Wyglądają one mniej więcej tak:
klasa serwisowa konto osobiste i takie metody;
zakładanie konta
wpłata
wypłata
transfer
Poza kontem osobistym są jeszcze inne rodzaje kont. Wszystkie te konkretne typy korzystają z bardziej ogólnej klasy account i w niej są zdefiniowane wspólne części dla tych metod. Ta ogólna klasa jest wstrzykiwana do klas konkretniejszych.
Czy taka struktura, w której jedna klasa serwisowa jest odpowiedzialna za cztery takie czynności nie łamie zasady jednej odpowiedzialności? Rozbijać to jakoś na mniejsze klasy? Czy takie klasy nie będę zbyt małe? Aktualne przykładowo klasa konto osobiste ma 4 publiczne metody takie jak powyżej i 1 prywatną. Zajmuje jakieś 90 linijek.
Zaś ta klasa wspólna account, do której odwołują się te konkretne ma 230 linijek kodu. Proste metody typu CRUD dla nowego konta, transfer, wpłata, wypłata oraz takie prywatne metody pomocnicze do obliczania opłaty za prowadzenie, rozbita na trzy. Jedna sprawdza czy należy naliczyć opłatę, druga ją nalicza a trzecia aktualizuje bazę danych.
Dzielić to np. na jedna klasę odpowiedzialną za wpłata, drugą za wypłatę itd? Zarówno tą jakby wspólną klasę i konkretne klasy?