Набранный состав клиентской библиотеки против наследования [закрыто]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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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