Saya sedang menulis API di atas objek COM dan Anda harus meneruskan objek COM ke hampir semua jenis dan metode statis yang saya tulis sehingga saya dapat menguji setiap bagian API saya.
Sekarang pertanyaan saya adalah apakah saya memiliki metode kelebihan beban untuk metode yang mengambil objek COM tetapi meneruskan IoC yang terselesaikan ke metode lainnya, sehingga pengguna API tidak perlu khawatir meneruskan objek COM atau haruskah saya menghapus metode yang kelebihan beban dan menyelesaikannya tanpa opsi untuk meneruskannya.
Agak sulit untuk dijelaskan, jadi berikut ini contohnya;
Contoh Konstruktor;
FooType(IComObject obj,string table) {}
FooType(string table) : this(Ioc.Resolve<IComObject>(), table) {}
atau hanya
FooType(string table) : this(Ioc.Resolve<IComObject>(), table) {}
Contoh metode statis;
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);
}
atau hanya
public static SomeType Create(string table)
{
IComObject obj = Ioc.Resolve<IComObject>();
return MyClass.Create(Ioc.Resolve<IComObject>(),table);
}
Kekhawatiran terbesar saya dengan kelebihan beban adalah bahwa hal itu akan menciptakan banyak metode yang hanya meneruskan panggilan. Pilihan lain apa yang saya miliki di sini atau apakah ini cara yang benar untuk mengatasi hal ini?
P.S Saya benar-benar tidak ingin membebani pengguna karena harus meneruskan instance IComObject ke seluruh aplikasi mereka.