Trong khi xem xét một số mã, tôi nhận thấy cơ hội để thay đổi nó để sử dụng thuốc generic. Mã (obfuscated) trông giống như:
public void DoAllTheThings(Type typeOfTarget, object[] possibleTargets)
{
var someProperty = typeOfTarget.GetProperty(possibleTargets[0]);
...
}
Mã này có thể được thay thế bằng generic, như vậy:
public void DoAllTheThings<T>(object[] possibleTargets[0])
{
var someProperty = type(T).getProperty(possibleTargets[0]);
...
}
Trong nghiên cứu những lợi ích và thiếu sót của phương pháp này, tôi đã tìm thấy một thuật ngữ gọi là lạm dụng chung . Xem:
- Bảo vệ người không chuyên (nhà phát triển) khỏi thuốc generic
- https://stackoverflow.com/questions/28203199/is-this-an-abuse-of-generics
- https://codereview.stackexchange.com/q/60695
Câu hỏi của tôi có hai phần:
- Có bất kỳ lợi ích nào khi chuyển sang thuốc generic như thế này không? (Hiệu suất? Khả năng đọc?)
- Lạm dụng Generics là gì? Và việc sử dụng chung chung mỗi khi có một tham số loại là lạm dụng ?