2013-07-10 2 views
0

알림을 보내는 데 사용되는 C#을 사용하여 응용 프로그램을 만들었습니다. 전송 통지를 위해 우리는 제 3 자 SOAP 서비스를 사용합니다. 이제 우리는 전송 통지와 동일한 기능을 제공하는 새로운 세 번째 파트 API에 대한 지원을 추가해야합니다.기존 응용 프로그램에서 추가 공급 업체를 지원하기위한 디자인 패턴

기존 C# 응용 프로그램은 일반 OOP 개념을 사용합니다. 지금부터 우리는 새로운 벤더를 지원하기 위해 애플리케이션을 수정해야하기 때문에 가능한 경우 추가 벤더를 쉽게 지원할 수 있도록 일부 디자인 패턴을 사용/적용하려고 생각하고 있습니다.

누구든지이 문제에 직면했거나 어떤 디자인 패턴으로 문제를 해결할 수 있는지 알고있었습니다.

도움/의견을 보내 주시면 감사하겠습니다.

덕분에, 라훌

+0

BTW, 디자인 패턴을 묻는 중, 질문은 실제로 C#과 관련이 없습니다. – ToolmakerSteve

답변

1

당신은 메시지를 보내는 필요한 기능을 제공하는 외관을 사용합니다. 애플리케이션은 Facade와 함께 작동하며 벤더 SOAP 서비스와 직접 작동하지는 않습니다.

각 공급 업체에 대해이 공급 업체의 SOAP 서비스를 사용하는 Facade 구현을 만듭니다. 이 구현은 새 어셈블리에서 살 수 있으므로 응용 프로그램을 공급 업체의 SOAP 서비스와 완전히 분리 할 수 ​​있습니다. 이제 SOAP 기반이 아닌 다른 메커니즘을 지원할 수도 있습니다.

+0

다니엘 감사합니다! –

0

당신이 찾고있는 것처럼 들리는 것은 어댑터 패턴입니다.

내부 시스템과 데이터를 가져 오는 위치 사이에 레이어를 설정할 때 어댑터 패턴이 사용됩니다. 이 레이어가하는 모든 작업은 형식에서 데이터로 데이터를 변환합니다.

여러 개의 데이터 소스가있는 경우이를 모두 하나의 허용 된 형식으로 변환하여 시스템에 전달할 수 있으며 끝에있는 데이터 형식이 변경되면 어댑터를 업데이트하기 만하면됩니다 레벨 코드.

편집 : Daniel이 맞습니다. Facade가 더 적절합니다. 필자가 묘사 한 어댑터는 소스간에 데이터를 전송하는 것에 관한 것입니다. 파사드는 데이터를 변환하는 솔루션이 아닌 소스간에 유사한 방식으로 변환되어 메서드를 변환합니다.

관련 문제