나는 현재 매우 분리 된 여러 가지 서비스를 가지고있다. 이제 나는 그것들을 확장시켜야하고 그들은 서로 접근하기 위해 의존 할 필요가있다. EmailService, HouseService, UserService, PriceService :서비스 계층과 상호 작용하는 서비스를 사용하는 최상의 아키텍처 설계?
의 내가 4 개 서비스 있다고 가정 해 봅시다. 각 사용자에게는 이메일 주소가 있으며 각 사용자는 집에 속합니다.
각 사용자에게 연결된 주택 가격에 대한 이메일을 보내고 싶습니다. 그래서 EmailService에 내가 PriceService에 SendEmailToAddress (문자열 이메일, 문자열 텍스트)을 가지고 나는 GetHousePrice (INT 아이디), HouseService에 내가 가진 GetUsersInHouse (INT 아이디)와 UserService에 내가 가진 GetEmailOfUser (INT ID가).
HouseController에서 모든 사용자에게 전자 메일을 보내는 가장 좋은 방법은 무엇입니까? 컨트롤러 액션에서 모든 서비스를 초기화하고 순서대로 각 서비스를 호출해야합니까, 아니면 중재자 패턴을 사용해야합니까? 만약 내가 그것을 사용해야한다면, 그것은 아마도 하나의 방법만을 포함 할 것이기에 약간의 과잉 공격이 될 것입니다. 또한 모든 곳에서 사용할 경우 각 서비스 연결마다 다른 조정자를 만들어야합니까? 그렇지 않으면 모든 서비스가 전용 속성으로 사용되는 하나의 클래스 여야하며 그런 다음 메서드에서 특정 작업을 한 번만 사용해야합니까? Mediator 패턴을 사용하면 모든 컨트롤러에서 사용해야하며 그렇지 않으면 함께 상호 작용할 필요가없는 곳의 베어 서비스를 사용해야합니다 (예 : 주택 목록 만 필요하면 그냥 가져 오는 것이 가장 좋습니다). Mediator 대신 서비스 개체에서 직접 가져옴)?
데이터베이스 상호 작용을 위해 서비스 계층 위의 저장소 계층도 사용하고 있습니까? –
그래, 나야. 그것은 어떤 차이를 만들까요? 트랜잭션을 제외하고 현명합니까? –