Saat meninjau beberapa kode, saya perhatikan kesempatan untuk mengubahnya menggunakan generik. Kode (dikaburkan) terlihat seperti:
public void DoAllTheThings(Type typeOfTarget, object[] possibleTargets)
{
var someProperty = typeOfTarget.GetProperty(possibleTargets[0]);
...
}
Kode ini dapat diganti oleh obat generik, seperti:
public void DoAllTheThings<T>(object[] possibleTargets[0])
{
var someProperty = type(T).getProperty(possibleTargets[0]);
...
}
Dalam meneliti manfaat dan kekurangan dari pendekatan ini saya menemukan istilah yang disebut penyalahgunaan generik . Lihat:
- Melindungi yang belum tahu (pengembang) dari obat generik
- https://stackoverflow.com/questions/28203199/is-this-an-abuse-of-generics
- https://codereview.stackexchange.com/q/60695
Pertanyaan saya ada dua bagian:
- Adakah manfaat untuk beralih ke obat generik seperti ini? (Kinerja? Keterbacaan?)
- Apa itu Penyalahgunaan Generik? Dan apakah menggunakan generik setiap kali ada parameter tipe penyalahgunaan ?