2011-09-10 5 views
1

응용 프로그램에서 Bridge 패턴을 구현하는 것이 어렵고 해결할 수없는 문제가 발생합니다.
'일반 추상화 내가 여러 가지 도구를 갖고 싶다면 ImpA & ImpB라고 부르세요.
나는이 작업을 수행 할 때 :C#의 'Bridge'패턴 구현에 관해서는

Abstraction a = new Abstraction(new ImpA); 

을 수행합니다.

도트 뒤에는 ImpA 클래스의 public 속성/메서드 목록이 표시 될 것으로 예상되지만 추상화 자체에 넣지 않으면 얻을 수 없습니다.
저는 각 구현체가 indepent이고 1 클래스를 모두 갖고 있지 않기 때문에 Abstract에서 모든 메소드를 넣고 싶지 않습니다.
내가 무엇을 여기서 놓치기 ??

답변

4

추상화 클래스의 핵심은 귀하의 경우 구현 (ImpA)에서 추상화하는 것입니다. 즉, Abstraction 클래스는 클라이언트가 사용하기로되어있는 인터페이스 (메서드)를 정의한 다음이 호출을 구현 작업에 전파하거나 "변환"해야합니다. 이것은 물론 추상화 클래스에서 공용 인터페이스를 구성하는 메소드를 구현하고 구현을 호출해야한다는 것을 의미합니다.

실제 구현 클래스는 다양하지만 인터페이스가 같고 클라이언트에 모두 노출되도록하려는 경우 "ImpA"클래스의 공용 메소드를 설명하는 인터페이스를 정의하고 고객.

여기에서 브리지 패턴의 .NET 설명을 찾을 수 있습니다. http://www.dofactory.com/Patterns/PatternBridge.aspx#_self1

관련 문제