ฉันกำลังเขียน API ไว้ด้านบนของวัตถุ COM และคุณต้องส่งผ่านวัตถุ COM ไปเป็นทุกประเภทและวิธีการคงที่ที่ฉันเขียน เพื่อที่ฉันจะได้ทดสอบแต่ละส่วนของ API ของฉันได้
ตอนนี้คำถามของฉันคือฉันมีวิธีการโอเวอร์โหลดสำหรับวิธีที่ใช้วัตถุ COM แต่ส่งผ่าน IoC ที่ได้รับการแก้ไขแล้วไปยังอีกวิธีหนึ่งแทน เพื่อให้ผู้ใช้ API ไม่ต้องกังวลกับการส่งผ่านในวัตถุ COM หรือฉันควรลบวิธีการโอเวอร์โหลดออกและแก้ไขโดยไม่มีตัวเลือกในการส่งต่อ
อธิบายยากนิดหน่อย นี่คือตัวอย่าง
ตัวอย่างคอนสตรัคเตอร์
FooType(IComObject obj,string table) {}
FooType(string table) : this(Ioc.Resolve<IComObject>(), table) {}
หรือเพียงแค่
FooType(string table) : this(Ioc.Resolve<IComObject>(), table) {}
ตัวอย่างวิธีการคงที่
public static SomeType Create(IComObject obj,string table)
{ // Do some work with obj}
public static SomeType Create(string table)
{
return MyClass.Create(Ioc.Resolve<IComObject>(),table);
}
หรือเพียงแค่
public static SomeType Create(string table)
{
IComObject obj = Ioc.Resolve<IComObject>();
return MyClass.Create(Ioc.Resolve<IComObject>(),table);
}
ความกังวลที่ใหญ่ที่สุดของฉันเกี่ยวกับการโอเวอร์โหลดคือมันจะสร้างวิธีการมากมายที่เพียงแค่โทรไม่ออก ฉันมีตัวเลือกอื่นใดอีกที่นี่หรือนี่เป็นวิธีที่ถูกต้องในการแก้ไขปัญหานี้
ป.ล. ฉันไม่ต้องการสร้างภาระให้ผู้ใช้ต้องส่งอินสแตนซ์ของ IComObject ไปทั่วแอปพลิเคชันของพวกเขา