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: Storage
hoặc StorageModel
? Chúng tôi có một Dịch vụ dữ StorageService
liệ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 trongStorageService
trả về nội bộStorageModel
? - Hoặc bạn sẽ trả lại một
StorageModel
trong bọc?