I am currently new to Dependency Injection pattern. I am influenced by link by Mark Seemann.
I have a confusion regarding whether an interface for an agent class of some agent module should be included in domain layer? by agent I mean a class / module that interacts with external wcf/ webservices.
I have a diagram that shows it. In short, is it Ok to have:
IProductAgent interface in Business layer where the actual implementation will be in an Agent Module.
The confusion arises by the fact that: Is calling a service even considered a business rule?
Today a service fulfills a facility, tomorrow there might be some another means of catering this same facility. Liskov's Substitution Principle.
Apologies if I am mixing things here.
-
I don't see anything in your "diagram" link.Robert Harvey– Robert Harvey08/29/2013 17:29:42Commented Aug 29, 2013 at 17:29
-
@RobertHarvey fixed the linkDevesh– Devesh08/29/2013 17:36:01Commented Aug 29, 2013 at 17:36
1 Answer 1
Yes, the domain layer may have external dependencies where the dependencies are defined by interfaces. Taking this approach makes the domain layer ignorant of the actual implementation
Erik Evans who defined Domain Driven Design does in fact use this approach in his book to be able to load domain entities from a data source.
Explore related questions
See similar questions with these tags.