私たちは、3つのメソッドのように必要なだけの巨大なインターフェースを公開するサードパーティのサービスに依存しています。さらに、インターフェースは頻繁に変更されます...
プロジェクトのクラスにインターフェイスをラップし、必要なメソッドのみを公開することにしました。
しかし、私は戻り値をどのように処理するべきかわかりません...インターフェイスは型のオブジェクトを返しますStorage
。内部StorageModel
には、の内部表現であるタイプがありますStorage
。
マッパーで何を返しますか:Storage
またはStorageModel
?StorageService
挿入されたラッパーの依存関係を取得するDataServiceがあります。
現在、私は基本的に次のようにしています:
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
、ラッパーですでに返しますか?