Service layer
Service layer – úvod Problém Vytvoření API aplikace Odstínění bussiness logiky a transakčního chování od zbytku aplikace Kam s aplikační logikou? Příklad: Enterprise aplikace (Java EE) Jak na to? Vytvoření sady tříd, jejichž metody se budou starat o bussiness logiku a aplikační logiku aplikace Známý také jako Service facade
Service layer – příklad
Service layer – varianty Domain facade – Servisní vrstva neobsahuje bussiness logiku Operation script – Servisní vrstva obsahuje bussiness logiku
Service layer – příklad – class diagram
Service layer – příklad – implementace 1 py); } public interface IntegrationGateway { void publishRevenueRecognitionCalculation(Contract contract); }
Service layer – příklad – implementace 2
Service layer – použití a problémy Použití? Všude kde k aplikaci přistupuje více druhů klientů REST, UI, RPC... Problémy Redundance CRUD operací „Zbytečná“ další vrstva abstrakce pro malé aplikace s jedním druhem klientů (např. pouze webové rozhraní)
Service layer – související návrhové vzory Domain model Definuje doménový model jako sadu tříd popisujících strukturu a chování dané domény Transaction script Vrstva která se stará o provádění bussiness logiky nad „jednoduchými“ objekty reprezentujícími strukturu domény Remote facade Další vrstva abstrakce např. pro REST