Chúng tôi có một sự phụ thuộc vào dịch vụ của bên thứ ba, cho thấy một giao diện khổng lồ mà chúng tôi chỉ cần như 3 phương thức. Ngoài ra, giao diện thay đổi thường xuyên ...
Tôi đã quyết định bọc giao diện trong một lớp trong dự án của chúng tôi và chỉ đưa ra các phương thức mà chúng tôi cần.
Nhưng tôi không chắc mình nên xử lý các giá trị trả về như thế nào ... Giao diện trả về một đối tượng kiểu Storage. Chúng tôi trong nội bộ có một loại StorageModelđó là đại diện nội bộ của chúng tôi về a Storage.
Những gì bạn sẽ trở lại trong mapper: Storagehoặc StorageModel? Chúng tôi có một Dịch vụ dữ StorageServiceliệu nhận được sự phụ thuộc của trình bao bọc được chèn.
Hiện tại tôi đang làm về cơ bản như thế này:
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);
}
}
}
Bạn muốn nói gì:
- Có tốt như trên không, rằng trình bao trả về
Storageđối tượng bên ngoài và bên trongStorageServicetrả về nội bộStorageModel? - Hoặc bạn sẽ trả lại một
StorageModeltrong bọc?