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 StorageModel
internal yang merupakan representasi internal kami dari a Storage
.
Apa yang akan Anda kembalikan di mapper: Storage
atau StorageModel
? Kami memiliki DataService StorageService
yang 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
Storage
objek eksternal dan internalStorageService
mengembalikan internalStorageModel
? - Atau apakah Anda sudah mengembalikan
StorageModel
pembungkusnya?