2012-11-04 4 views
1

우리는 매우 유사한 기능을 가진 많은 컨트롤러를 가지고 있습니다. 많은 코드 중복이 있습니다. 모든 컨트롤러에 사용되는 코드가 들어있는 기본 컨트롤러가 있지만 대부분은 여전히 ​​복제되어 있습니다. 각 컨트롤러에는 생성자가 있으며 서비스는성에 의해 주입됩니다.generics 대 mvc 컨트롤러의 상속

컨트롤러의 제네릭을 사용하여 복제량을 줄일 수 있다고 생각했습니다. 기본 클래스에 유사한 코드를두고 코드가 다른 인스턴스를 무시합니다.

또는 제네릭없이 동일한 작업을 수행 할 수 있으며 기본 코드에 중복 코드가 더 있습니다.

최상의 접근 방법과 컨트롤러에서 제네릭을 구현하는 방법은 무엇입니까? 나는 그들이 인터페이스를 사용할 것이라고 추측한다.

+1

중복 코드에 대한 공장 및 서비스는 어떻습니까? 또는 이미 구현되었지만 여전히 중복 된 코드가 있습니까? 그렇지 않으면, 그것의 목적이 있다면베이스 컨트롤러 클래스와 제네릭을 모두 사용할 것입니다. –

답변

0

응용 프로그램을 보지 않고도 대답하기가 어렵습니다. 그러나 Generics는 다른 유형에 재사용 가능한 코드를 작성하는 데 유용합니다.

public class Stack<T> 
{ 
    T[] m_Items; 
    public void Push(T item) {...} 
    public T Pop() {...} 
} 
Stack<int> stack = new Stack<int>(); 
stack.Push(1); 
stack.Push(2); 
int number = stack.Pop(); 

제네릭에는 유형 안전성이 있습니다. Pushint을 수락하고 Popint을 반환 할 것임을 보증합니다. 마찬가지로 string 등으로 사용할 수도 있습니다. 그렇지 않은 경우 object을 사용해야합니다.이 경우 유형에 보증이 없습니다.