我们依赖于第三方服务,该服务公开了一个巨大的接口,我们只需要像3种方法。此外,界面经常更改...
我决定将接口包装在我们项目的一个类中,只公开我们需要的方法。
但是我不确定如何处理返回值...接口返回类型为的对象Storage
。我们内部有一个类型StorageModel
,它是a的内部表示形式Storage
。
您将在映射器中返回什么:Storage
或StorageModel
?我们有一个DataService StorageService
,它获得了注入的包装的依赖关系。
目前,我基本上是这样的:
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);
}
}
}
你打算说什么:
- 像上面这样好,包装器返回外部
Storage
对象,内部StorageService
返回内部对象StorageModel
? - 还是您
StorageModel
已经在包装器中返回了?