Nel modello di repository, è una "cattiva idea" chiamare un metodo di servizio da un altro metodo di servizio?
Nella maggior parte dei casi, finisco naturalmente per chiamare i metodi di repository dai miei metodi di servizio. Tuttavia, in alcuni casi, chiamare un metodo di servizio da un altro metodo di servizio sembra avere senso perché il metodo di servizio esistente gestisce in modo appropriato l'attività in corso.
Diciamo che ho i seguenti metodi:
GetUserFavoritesServiceMethod(userId, requestByUserId)
{
// Make sure the request is allowed
// This is the business logic where I make sure the requesting party is authorized to make the request
// If allowed, call repository method
var favs = GetUserFavoritesRepositoryMethod();
}
GetUserFavoritesRepositoryMethod(userId)
{
// Return results
}
Ora, supponiamo di avere altri metodi di servizio che richiedono i preferiti dell'utente. Potrei semplificare eccessivamente il mio esempio, ma qui ho la possibilità di chiamare il metodo di repository o il metodo di servizio esistente.
GetSomeOtherInfoServiceMethod(userId, requestByUserId)
{
// Call GetUserFavoritesServiceMethod() OR GetUserFavoritesRepositoryMethod()
}
Chiamare GetUserFavoritesServiceMethods()
sembra un po 'macchinoso perché potrei già aver eseguito alcune logiche di business in GetSomeOtherInfoServiceMethod()
ed eseguire nuovamente la logica di business in GetUserFavoritesServiceMethod()
sembra brutto / dispendioso / ecc.
D'altra parte, GetUserFavoritesServiceMethod()
potrebbe essere piacevolmente impacchettato per me rispetto a GetUserFavoritesRepositoryMethod()
potrebbe non esserlo.
Ancora una volta, ho finito per semplificarlo ma chiaramente aggiungo un po 'di "valore" ai metodi di servizio ea volte voglio approfittare di quel "valore".
Voglio vedere se chiamare un metodo di servizio da un altro metodo di servizio è generalmente disapprovato.