Мне интересно о архитектурной дилемме.
Код: Выделить всё
class ServiceBase
{
private readonly HttpClient _httpClient;
protected EventMakerService(HttpClient httpClient)
{
_httpClient = httpClient;
}
protected async Task SendAsync(string requestUri, HttpMethod httpMethod, object content = null, Dictionary queryParameters = null)
{
// Format query, send it and handle response
}
protected string GetBearerToken()
{
// Handle authentication
}
}
Тогда у меня есть несколько специфических классов для обработки запросов, например, для всех конечных точек контроллера, скажем, у меня будет Carservice с такими методами, как GetCar, UpdateCar, вставка ...
Я интересно /> наследование < /p>
class CarService : ServiceBase, ICarService
{
public Car GetCar() {}
}
< /code>
состав < /p>
sealed class CarService : ICarService
{
private readonly ServiceBase _service;
public Car GetCar() { // use _service to send query }
}
< /code>
Что меня беспокоит с наследством, так это то, что Servicebase будет подвергаться потребителю пакета Nuget Package, поскольку она обязательно должна быть публичной, тогда как с композицией я мог бы сохранить базовый класс внутренним. Выпуск.
Спасибо за ваше время и ответы! < /p>
Подробнее здесь: https://stackoverflow.com/questions/797 ... nheritance
Мобильная версия