Servisní třídy slouží taky k tomu, aby se pokaždé s každým požadavkem nevytvářely znovu ty samé instance tříd, protože by to mělo vliv na performance. Když se dělá se Servisními třídami např ve Springu, je třeba to tak trochu brát jako práci uvnitř návrhového vzoru.
Myslím si, že Service je třeba brát spíše jako nutnost a ne něco, co má nějak vylepšit OOP. Osobně moc Services rád nemám, myslím že třeba v typickém Spring app se docela nadužívají, prostě každá nová třída dostane anotaci buďto Service nebo DAO. To není dobře.
Co se týče samotného OOP, tak odpověď na to, co to je, by se dal brát myslím si ze dvou stran. Ta první, mě bližší: prirozené obohacení procedurálního programování o přimou podporu zapouzdřenosti (tvorba modulů) a polymorfizmu (nad těmito moduly). To je takový praktický pohled na věc. Pak je ještě pohled z druhé strany, tomu se vyhýbám, a to od OOP teoretiků. Tento úhel pohledu nemám rád, protože je přehnaný a dost přesahuje schopnosti samotného OOP. S OOP se nedají modelovat reálné věci, je příliš stupidní. Takže já se držím definice OOP jakožto vylepšení starého způsobu programování a především beru OOP jako nástroj pro programátora, a ne programátora jako nástroj pro OOP.