2011-09-29 5 views
1

요청/응답 클라이언트를 구현하려고합니다. 여기에 대한 기본 구현이 있습니다.요청 응답 설계 구현

Class Request 
{ 
    prepareRequest1(); 
    prepareRequest2(); 
} 

Class Response 
{ 
    processResponse1(); 
    processResponse2(); 
} 

Class Client 
{ 
    connect(); 
    sendRequest(); 
} 

myrequest = new Request(); 
client = new Client (myserver); 
my $rawResponse1 = client.sendRequest (myrequest.prepareRequest1()); 

myresponse = new Response(); 
myresponse.processResponse1 ($rawResponse1); 

나는 Request, Response 및 Client라는 세 가지 클래스가 있습니다. 요청 클래스는 요청과 관련된 기능을 포함합니다. 이러한 요청은 XML 요청입니다. XML 요청에는 몇 개의 초기 태그 (예 : sessionid 등)를 제외하고는 공통된 것이 없습니다. 다른 모든 XML 매개 변수는 요청 유형에 따라 다릅니다. 그래서, 현재 각 요청에 대해 별도의 함수를 생성하여 전달하고 있습니다. 확장 성 문제가 있다는 것을 이해합니다. 그러나 여기에서 적용 할 수있는 다른 최상의 방법을 제안 해주십시오.

요청과 마찬가지로 각 요청에 대한 응답에는 특정 처리가 필요합니다. 그래서 나는 기대하고있는 각 유형의 응답에 특정한 기능을 가지고 있습니다. 일반적으로 요청과 응답 사이에는 1 : 1 매핑이 있다고 가정 할 수 있습니다.

마지막으로 연결할 클라이언트 클래스입니다.

저는 이러한 요청과 응답을 거의 50 개 이상 보유하고 있으며이 접근 방식을 구현할 계획입니다. 내가 개발 초기 단계에 있으므로 요청/응답을 구현하기위한 몇 가지 개선/모범 사례를 제안하십시오.

답변

0

코드 외부에서 요청과 응답의 매핑을 유지하는 것이 가장 좋습니다. 관리가 더 쉽습니다. 특정 유형의 XML 메시지에 연결된 요청 및 응답의 클래스 이름을 저장하는 XML 구성 파일을 보관하십시오. 그런 다음 클래스 이름을 가져 와서 해당 클래스로 이동하여 요청 및 응답을 처리 할 수 ​​있습니다. 별도의 메소드가 아닌 이러한 메시지를 처리하는 별도의 클래스를 갖는 것이 가장 좋습니다. 그 이상의 확장 성이 있습니다. 모든 요청 클래스에 대한 인터페이스가 있고 응답 클래스에 대한 인터페이스가 있는지 확인하십시오. 이

은 당신이

+0

:) 가지고 희망 .. 쉽게하는 XML 설정 파일을 수정하여 쉽게 귀하의 요청에 응답 클래스를 교환 할 수 있도록합니다 I가 거의 50 개 이상의 메시지의 다른 유형 (요청/응답). 각 메시지마다 하나씩 50 개의 클래스를 갖는 것이 좋습니다. – rpg

+0

더 많은 수업을받는 것이 관리가 쉬운 한 범죄는 아닙니다. 그러나 다시 그것은 내 의견이다. 그러나 이러한 클래스를 관리하고 요청과 클래스 사이에 1-1 매핑을 사용하고 싶지 않다면, 내가 제안한 것처럼 항상 같은 요청을 클럽에 적용하고 동일한 클래스를 사용하여 서비스를 제공 할 수는 있지만 최선을 다합니다. 어떤 XML 요청을 맵핑 -> 어떤 클래스에 맵핑 -> XML 설정 파일의 코드 외부에있는 메소드로 맵핑. 그러면 유연성이 극대화됩니다. 클래스를 인스턴스화하고 리플렉션을 통해 메서드를 호출합니다. – sethu

+0

감사합니다. sethu, 더 유망 해 보입니다. – rpg