Cześć,
Właśnie projektuję większy projekt, który będę realizował. Zastanawiam się nad jego architekturą - a dokładnie podziałem na warstwę dostępu do danych (encje i mapowanie na tabele) a logiką biznesową.
Załóżmy poniższe definicje (na cele tematu, nie wiem czy są poprawne) :
-model - klasa zawierająca logikę biznesową, jakiś obiekt ze świata rzeczywistego (np. Produkt, Samochód)
-encja - klasa którą ORM mapuje na tabele relacyjnej bazy danych.
Architektura aplikacji będzie zawierała klasy modelu z logiką biznesową i na tych klasach operowała. Dla każdej klasy modelu stworzę odpowiadającą klasę którą ORM będzie mapował. Aplikacja nie będzie w ogóle z nich więcej korzystała(jedynie w repozytoriach aby używać CRUD). Stworzę ponadto serwisy, które będą repozytoriami, i w nich także będzie odbywało się mapowanie z obiektu klasy modelu na klasę encji, aby ORM mógł przeprowadzić operację. Tylko te repozytoria będa korzystać z obiektów klas encji.
Co sądzicie o takiej architekturze?
PS. Przepraszam jeśli napisałem zbyt chaotycznie lub użyłem niepoprawnych pojęć.