हमारे पास एक तृतीय-पक्ष सेवा के लिए एक निर्भरता है जो एक विशाल इंटरफ़ेस को उजागर करती है जिसमें हमें केवल 3 विधियों की आवश्यकता होती है। इसके अतिरिक्त, इंटरफ़ेस अक्सर बदलता रहता है ...
मैंने अपनी परियोजना में एक वर्ग में इंटरफ़ेस को लपेटने का फैसला किया है और केवल उन तरीकों को उजागर करता है जिनकी हमें ज़रूरत है।
लेकिन मैं अनिश्चित हूं कि मुझे वापसी मूल्यों को कैसे संभालना चाहिए ... इंटरफ़ेस एक प्रकार की वस्तु देता है Storage
। हमारे पास आंतरिक रूप से एक प्रकार है StorageModel
जो हमारा आंतरिक प्रतिनिधित्व है 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
पहले से ही रैपर में वापस आ जाएंगे ?