Attualmente la struttura della mia domanda è la seguente App Web - > Servizio WCF (solo una facciata) - > Servizi di business logic - > Repository - > Entity Framework Datacontext
Ora ognuno dei miei servizi di business logic dipende da più di 5 repository (ho interfacce definite per tutti i repository) e sto facendo un'iniezione di Constructor proprio ora (povere mans DI invece di usare un IOC corretto come è stato determinato che sarebbe un eccesso per il nostro progetto). I repository hanno riferimenti ai datacontex EF. Ora alcuni dei metodi nel servizio di logica aziendale richiedono solo uno dei 5 repository, quindi se dovessi chiamare quel metodo finirò per creare un servizio che instituirà tutti e 5 i repository che è uno spreco. Un esempio:
public class SomeService : ISomeService
{
public(IFirstRepository repo1, ISecondRepository repo2, IThirdRepository repo3)
{}
// My DoSomething method depends only on repo1 and doesn't use repo2 and repo3
public DoSomething()
{
//uses repo1 to do some stuff, doesn't use repo2 and repo3
}
public DoSomething2()
{
//uses repo2 and repo3 to do something, doesn't require repo1
}
public DoSomething3()
{
//uses repo3 to do something, doesn't require repo1 and repo2
}
}
Ora se devo usare DoSomething
metodo su SomeService
Finisco per creare sia IFirstRepository, ISecondRepository e IThirdRepository ma usando solo IFirstRepository, ora questo mi disturba, posso sembrare accettare che sono un-necessariamente creare repository e non usarli.
È un progetto corretto? Ci sono alternative migliori? Dovrei guardare l'istanza Lazy Lazy<T>
?