Že mají třeba 5 atributů stejných a dva jiné Takže jsou v podstatě stejné, ale "nedává" smysl je modelovat dohromady. Zase z hlediska údržby chce člověk mít co nejvíce společného.
Tak jestli mají stejné nějaké vlastnosti, ale jejich chování je jiné, pak spolu nesouvisejí. Nebo třeba sdílejí společné stavy, které je třeba vyčlenit do jiné třídy.
Pak přichází na řadu ukládání. Radši bych to ukládal úplně stejně pro obě. Ono každé má něco a chápu, že neexistuje jen jedno řešení. Takže tvůj nápad je mít zvášť třídy, zvlášt služby a třeba zvlášť ukládání. Což bude asi docela dost duplicity. Pokud tomu dobře rozumím.
Když budete ukládat pouze stavy (typické pro dnešní DB) stejného formátu různých tříd jedním ukládačem, tak je to 1. systematická chyba, 2. se vám to při jakékoliv změně jedné ze tříd rozesere. Takže každá třída svoje.
Služba je buďto vlastností objektu, nebo patří jinam, pak je třeba si ještě uvědomit závislost co na čem.
Ukládání (persistence) modelu (objektu) je VŽDY extra, protože s modelem nesouvisí - lze přece ukládat na různá zařízení (DB, soubor, HTTP, paměť(!), ...), na víc současně nebo to za běhu prohazovat...