Kami memiliki ketergantungan pada layanan pihak ketiga yang memperlihatkan antarmuka raksasa yang hanya kami butuhkan seperti 3 metode. Selain itu, antarmuka sering berubah ...
Saya telah memutuskan untuk membungkus antarmuka dalam kelas di proyek kami dan hanya memaparkan metode yang kami butuhkan.
Tapi saya tidak yakin bagaimana saya harus menangani nilai kembali ... Antarmuka mengembalikan objek bertipe Storage. Kami memiliki tipe StorageModelinternal yang merupakan representasi internal kami dari a Storage.
Apa yang akan Anda kembalikan di mapper: Storageatau StorageModel? Kami memiliki DataService StorageServiceyang mendapatkan ketergantungan bungkus yang disuntikkan.
Saat ini saya melakukannya pada dasarnya seperti ini:
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);
}
}
}
Apa yang akan Anda sampaikan:
- Apakah bagus seperti di atas, bahwa pembungkus mengembalikan
Storageobjek eksternal dan internalStorageServicemengembalikan internalStorageModel? - Atau apakah Anda sudah mengembalikan
StorageModelpembungkusnya?