2011-01-24 6 views
2

웹 서비스를 많이 사용하는 Android 앱을 작성 중입니다.여러 매개 변수 유형을 허용하는 일반 함수 만들기

헤더 (HttpGet, HttpPost, HttpPut, HttpDelete)에 헤더를 추가하는 방법을 작성하고 싶습니다.

모든 헤더가 항상 같기 때문에 1 가지 방법을 쓰고 4 가지 방법을 쓰고 싶습니다.

나는 모든 4가 HttpRequestBase를 확장한다고 생각한다. 가장 좋은 아이디어는 HttpRequestBase를 매개 변수로 사용하고 다양한 HttpGet, HttpPost, HttpPut, HttpDelete 객체를 HttpRequestBase에 캐스트하고 메서드를 호출하는 메서드를 작성하는 것입니까?

기타 제안 사항? 네이 같은 기본 클래스를 확장 할 경우

void MyFunciton(HttpRequestBase request); 
+0

단순한 상속 또는 인터페이스조차도 가능합니다. – biziclop

답변

3

는, 당신은 필요가 없습니다 :

3

HttpGetHttpPost는, HttpPutHttpDelete 그때 당신은 단순히 다형성의 마법을 통해이 작업을 수행 할 수 있습니다 HttpRequestBase에서 파생 있습니다 어떤 주조도 전혀하지 말라. 다형성은 당신이 원하는 것을해야합니다. 간단히 말해서 :

void myFunction(HttpRequestBase request) { 
    ... 
} 

... 
HttpGet getRequest = new HttpGet(); 
myFunction(getRequest); // No need to cast 

나는이 라이브러리에 대해 아무 것도 모른다. 이 작업을 수행하지 못하게하는 gremlins가있을 수 있습니다 (그러나이 경우 라이브러리 디자인이 잘못되었습니다).

관련 문제