เรามีการพึ่งพาบริการของบุคคลที่สามซึ่งแสดงถึงอินเทอร์เฟซขนาดมหึมาซึ่งเราต้องการเพียง 3 วิธีเท่านั้น นอกจากนี้อินเทอร์เฟซเปลี่ยนบ่อย ...
ฉันตัดสินใจที่จะรวมส่วนต่อประสานในชั้นเรียนในโครงการของเราและเปิดเผยวิธีการที่เราต้องการเท่านั้น
แต่ผมไม่แน่ใจว่าผมควรจะจัดการกับค่าส่งกลับ ... Storage
อินเตอร์เฟซที่ส่งกลับวัตถุของการพิมพ์ เราภายในมีชนิดซึ่งเป็นตัวแทนของเราภายในของStorageModel
Storage
สิ่งที่คุณจะกลับมาใน mapper นี้Storage
หรือStorageModel
? เรามี DataService StorageService
ซึ่งได้รับการพึ่งพาของ wrapper injected
ขณะนี้ฉันกำลังทำมันโดยทั่วไปดังนี้:
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);
}
}
}
คุณจะพูดอะไร:
- มันดีเหมือนข้างบนหรือเปล่าที่ wrapper คืนค่า
Storage
อ็อบเจกต์ภายนอกและ InternalStorageService
คืนค่า InternalStorageModel
? - หรือคุณจะส่งคืนเครื่อง
StorageModel
ห่อหุ้มแล้ว?