2010-02-19 10 views
13

Czy mam rację, sądząc, że cel warstwy usług obejmuje następujące elementy?Cel warstwy usługi

  • przerzedzenie modeli domen (czyli przemieszczanie pewnych funkcji jak w buforowanie, instancji)
  • zmniejszenie zależności od modeli domen
  • minimalizacja API
+1

Mam odpowiedzi ... czytając tę ​​stronę .... Dziękuję za pytanie. –

Odpowiedz

14

Pod względem Domain-Driven Design na przykład warstwa usługi domeny jest używana do operacji, których nie można zdefiniować w kontekście Twoich obiektów Domeny. Na przykład, jeśli posiadasz kartę kredytową obiektu, odpowiednią operacją w warstwie usług będzie Wydanie nowej karty kredytowej.

W większej aplikacji używany jest wzorzec Anemiczne modele domen, w których obiekty domeny są używane tylko jako kontenery danych, a cała logika biznesowa znajduje się w warstwie usługi domeny (jest to czasami określane jako anti-pattern, ale może być bardzo przydatne w dużym rozwiązaniu, z dodaniem kolejnej warstwy abstrakcji).

W różnych architekturach i wzorach rozwiązań warstwa usługi może mieć jednak cel różnicowy.

16

Tradycyjnie (jeśli nie korzystasz z funkcji Domain Driven Design), warstwa usługowa lub "warstwa biznesowa", jak to się nazywa, jest miejscem, gdzie kodujesz całą logikę biznesową dla swojej aplikacji. Tak więc, na przykład w aplikacji, która zajmuje się udzielaniem pożyczek bankowych, warstwa usługi jest tam, gdzie idzie kod, który decyduje o tym, czy daną pożyczkę należy udzielić, czy nie. Oczywiście, warstwa usługowa wymaga pewnych informacji o wnioskodawcy pożyczki, aby móc podjąć decyzję dotyczącą jej wiarygodności. Aby pobrać te informacje, warstwa biznesowa wywołuje warstwę "danych" lub "repozytorium", która zajmuje się wyodrębnianiem i przechowywaniem informacji w bazie danych.

Warstwa usług nie zajmuje się takimi kwestiami jak trwałość czy inne problemy związane z infrastrukturą.

Jeśli Twój projekt jest oparty na domenie, odpowiedź anthares jest prawdziwa.

+0

Bardzo wyraźny i ostry ... Dzięki. –

4

Warstwa usług, jak sama nazwa wskazuje, zapewnia usługi, które nie są bezpośrednio odpowiedzialne za żaden inny obiekt domeny.

Warstwa usług pomaga również w oddzieleniu obowiązków. Warstwa usług tworzy środkową część między warstwą bazy danych/trwałości a warstwą klienta/interfejsu użytkownika/sieci Web.

Prawidłowe zaprojektowanie warstwy serwisowej pozwala na jej użycie od dowolnego klienta, czy to klienta sieci Web, czy usługi internetowej (SOA) lub urządzenia mobilnego.