Sadece 3 yönteme ihtiyaç duyduğumuz devasa bir arayüzü ortaya çıkaran bir üçüncü taraf hizmetine bağımlılığımız var. Ayrıca, arayüz sık sık değişir ...
Arayüzü projemizdeki bir sınıfa sarmaya ve sadece ihtiyacımız olan yöntemleri ortaya çıkarmaya karar verdim.
Ancak, dönüş değerlerini nasıl işlemem gerektiğinden emin değilim ... Arabirim türü bir nesne döndürür Storage
. Dahili StorageModel
olarak a Storage
.
Eşleştiriciye ne döndürürdünüz: Storage
veya StorageModel
? StorageService
Enjekte edilen sargının bağımlılığını elde eden bir DataService'imiz var .
Şu anda bunu şöyle yapıyorum:
public class StorageService
{
private readonly IExternalStorageWrapper externalStorageWrapper;
public StorageService(IExternalStorageWrapper externalStorageWrapper)
{
this.externalStorageWrapper = externalStorageWrapper;
}
public StorageModel GetStorage(int storageId)
{
return this.externalStorageWrapper.GetStorage(storageId).ConvertToStorageModel();
}
}
public class ExternalStorageWrapper : IExternalStorageWrapper
{
public Storage GetStorage(int storageId)
{
using(var ext = new ExternalStorage())
{
return ext.GetStorage(storageId);
}
}
}
Ne söylerdiniz:
- Yukarıdaki gibi iyi, sargının dış
Storage
nesneyi ve iç nesnenin iç nesneyiStorageService
döndürmesi iyiStorageModel
mi? - Yoksa
StorageModel
zaten bir sargıya iade eder misiniz ?