일부 코드를 검토하는 동안 제네릭을 사용하도록 코드를 변경할 수있는 기회를 발견했습니다. (난독 화 된) 코드는 다음과 같습니다.
public void DoAllTheThings(Type typeOfTarget, object[] possibleTargets)
{
var someProperty = typeOfTarget.GetProperty(possibleTargets[0]);
...
}
이 코드는 다음과 같이 제네릭으로 대체 될 수 있습니다.
public void DoAllTheThings<T>(object[] possibleTargets[0])
{
var someProperty = type(T).getProperty(possibleTargets[0]);
...
}
이 접근법의 장점과 단점을 연구하면서 나는 일반적인 학대 라는 용어를 발견했다 . 보다:
- 시작되지 않은 (개발자) 제네릭으로부터 보호
- https://stackoverflow.com/questions/28203199/is-this-an-abuse-of-generics
- https://codereview.stackexchange.com/q/60695
내 질문은 두 부분으로 나옵니다.
- 이와 같은 제네릭으로 이전하면 어떤 이점이 있습니까? (성능? 가독성?)
- 제네릭 악용이란 무엇입니까? 그리고 유형 매개 변수가 남용 될 때마다 제네릭을 사용하고 있습니까?