Typisierte Client -Bibliothekszusammensetzung gegen Vererbung

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Typisierte Client -Bibliothekszusammensetzung gegen Vererbung

by Anonymous » 19 Aug 2025, 17:35

Ich arbeite derzeit an einem Nuget -Paket, um einen Anschluss für eine API mit typisierten Clients zu erstellen.
Ich wundere mich über ein Architektur -Dilemma.

Code: Select all

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
}
}
}
Dann habe ich mehrere spezifische Klasse für die Handhabung von Anforderungen, beispielsweise für alle Endpunkte eines Controllers, sagen wir, ich werde einen Carservice mit Methoden wie GetCars, UpdateCar, InsertCar ...
Vererbung < /p>
class CarService : ServiceBase, ICarService
{
public Car GetCar() {}
}
< /code>
Komposition < /p>
sealed class CarService : ICarService
{
private readonly ServiceBase _service;

public Car GetCar() { // use _service to send query }
}
< /code>
Was mich mit Vererbung stört, ist, dass die Servicebase dem Nuget -Paket -Verbraucher ausgesetzt ist, da sie notwendigerweise öffentlich sein muss, während ich mit Zusammensetzung eine Basisklasse intern halten kann. Ausgabe.
Danke für Ihre Zeit und Antworten! < /P.>

Top