유도 API가 아닌 인 공용 API 클래스를 제공 할 때 브릿지를 추가하고 구현하는 대신 해당 클래스에서 파생하여 구현을 제공하는 것이 더 편리하다는 것을 알게되었습니다.여전히 구현이 추상화에서 파생되는 브리지 패턴입니까?
추상화 의 구현은으로 대체 할 필요가 없습니다. 유일한 요구 사항은 구현을 추상화 (공용 인터페이스)와 분리하는 것입니다.
PublicApiAssembly.dll :
public abstract class PublicApi // Clients don't need to derive from it
{
internal PublicApi() {}
public abstract void Calculate();
}
ImplementationAssembly.dll (참조 PublicApiAssembly.dll 다른 모든 종속성이 추상화를 구현하는) :
internal class PublicApiImpl : PublicApi
{
public override void Calculate() {}
}
는 여전히 다리 패턴 구현 도출인가 추상화에서 제발, 제발?
Wikipedia 나는 "책임을 분리하기 위해 상속을 사용할 수있다"고 말할 때 브리지 패턴을 구현한다고 생각하게했습니다.
감사합니다.
공용 API는 이기 때문에 추상 클래스로 선언됩니다. 1. 이후 버전의 라이브러리에서는 안전하게 새 멤버를 클래스에 추가 할 수 있습니다. 기존 코드를 손상시키지 않으면 서 인터페이스에 멤버를 추가 할 수 없습니다. 2. 계약 (API)은 해당 구현 인 하나의 유형에만 적용 가능합니다. 인터페이스로 선언함으로써 우리는 계약이 다양한 클래스에 의해 구현 될 수 있음을 전달 하겠지만, 그렇지 않습니다. MSDN의 [클래스 및 인터페이스 선택] (http://msdn.microsoft.com/en-us/library/vstudio/ms229013(v=vs.100) .aspx)을 참조하십시오. –