우리는 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
래퍼에 이미 a를 반환 하시겠습니까?