Набранный состав клиентской библиотеки против наследования [закрыто]C#

Место общения программистов C#
Anonymous
Набранный состав клиентской библиотеки против наследования [закрыто]

Сообщение Anonymous »

В настоящее время я работаю над пакетом Nuget, чтобы создать разъем для API с типичными клиентами.
Мне интересно о архитектурной дилемме.

Код: Выделить всё

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

Вернуться в «C#»