Typisierte Client -Bibliothekszusammensetzung gegen VererbungC#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Typisierte Client -Bibliothekszusammensetzung gegen Vererbung

Post by Anonymous »

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.>

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post