Я недавно начал создавать сервисные слои и делать объявления как:
MyService myService = new MyService();
myService.DoSomething();
Это было вдохновлено некоторым ASP.NET видео MVC, и мне нравится шаблон.
Затем я начал создавать интерфейсы и насмешки как:
IMyService myService = new MockMyService();
myService.DoSomething();
Таким образом, я могу изолировать части кода для тестирования. Но теперь моя папка уровня служб загружается классами, интерфейсами и ложными классами:
IServiceTypeA.cs
ServiceTypeA.cs
MockServiceTypeA.cs
IServiceTypeB.cs
ServiceTypeB.cs
MockServiceTypeB.cs
...
IServiceTypeZ.cs
ServiceTypeZ.cs
MockServiceTypeZ.cs
Как Вы организуете их логическим способом?
- Providers
ServiceTypeA.cs
ServiceTypeB.cs
ServiceTypeC.cs
- Interfaces
IServiceTypeA.cs
IServiceTypeB.cs
IServiceTypeC.cs
- Testing
- Unit Tests
- Mocks
MockServiceTypeA.cs
MockServiceTypeB.cs
MockServiceTypeC.cs
Или вы можете использовать Mocking-фреймворки, чтобы Mock-сервисы генерировались во время выполнения.