2011-01-20 3 views
0

이전에 아키텍처는 간단한 방법으로 많은 작업을 수행하기 위해 외관을 사용하고있었습니다. 뭔가 같은 :외관이있는 어댑터 사용

startComputer(...) 
shutdownComputer(...) 

내가 응용 프로그램을 확장 할 때 필자는 여러 유형의 입력을 외관 자체로 변환 할 필요가 있습니다. 과거에는 startComputer이 6 개의 매개 변수를 사용했으며 새로운 아키텍처에서는 일종의 구문 분석 가능한 문자열 입력이 사용되고 다른 경우에는 일부 기본 64 인코딩 엉망이 발생한다고 가정 해 보겠습니다. 기본적으로 전반적으로 높은 수준의 명령을 통해 동일한 하위 시스템에 액세스하고 모든 형식의 인터페이스를 정의하고자합니다.

저는 어댑터와 외관에 대해 생각해 볼 때 혼란스러워합니다. 아마도 사람들은 항상 차이점을 설명하기 때문입니다. 이 경우 필자가 본질적으로 원하는 것은 외관을 그대로 유지하면서 다양한 입력을 지원하는 어댑터를 만드는 것입니다. 이 경우, 외관은 적응 자입니다.

더 좋은 방법이 있습니까?

+0

차이를 기억하는 쉬운 방법을 매개 변수 : 어댑터로 자신을 하나의 인터페이스를 가지고 그것을 포장 할 수 있도록/제시 순수하게 존재 반면에 정면은 복잡한 시스템에 대한 높은 수준의 단순화 역할을합니다. 하나는 필수품이고 다른 하나는 멋집니다. –

+0

나는이 말을 제대로하지 못했을 것입니다 - 제가 제안하는 것은 두 가지 목표를 동시에 달성하기 위해 두 가지를 동시에 사용한다는 것입니다. 더 복잡한 시스템을 간소화합니다. –

답변

1

당신이 당신의 외관은 그것의 정의 "명령"패턴을 사용하려면 같은 소리 http://en.wikipedia.org/wiki/Command_pattern

+0

어쩌면 ...하지만 여전히 모든 종류의 입력을 Command 개체로 변환해야합니다. –

+0

여러분의 facade에있는 메소드가 매개 변수로 명령을 사용한다고 sugesting했습니다. 정면의 호출자는 어떤 유형의 명령을 만들고 전달할 지 선택할 수 있습니다. –

+0

하지만 통합 된 Command 객체로 모든 다양한 유형의 입력을 변환하기 위해 어댑터가 필요하지 않습니까? 3 개의 다른 종류는 동일한 명령을 보낼 수 있고 싶다 그러나 다른 입력에서 창조되어야한다. –