확장 포인트를 사용하여 다양한 플러그 가능 비트 기능을 정의한 RCP 응용 프로그램이 있습니다.활성 구현을 하나만 가져야하는 확장 점을 모델링하는 올바른 방법은 무엇입니까?
어떤 경우에는 논리적으로 한 번에 많은 구현이 활성화 될 수있는 확장 점이 있습니다. 예를 들어, DataFeed 지점과 응용 프로그램이 논리적으로 많은 기능을 지원할 수 있습니다.
다른 경우에는 응용 프로그램의 실행중인 인스턴스에서 단일 구현이 활성화되어 있어야합니다. 나는 사용자가 그들 사이를 전환 할 수 있기를 원하지만 플러그 인을 제거/다시 설치하는 것은 사용자에게 친숙하지 않습니다.
내가 처리 할 수있는 방법은 확장 점을 IExecutableExtensionFactory를 사용하는 팩토리로 정의하는 것입니다. 그런 다음 각 플러그인에는 활성 여부를 나타내는 환경 설정이 있어야합니다. 활성화되어 있지 않으면 팩토리는 null을 반환하고 응용 프로그램은 다음 옵션을 봅니다. 없는 경우 적절한 값을 사용하십시오.
이것은 매우 적절하다고 느끼지 않지만, 이러한 유형의 행동을 모델로 삼지 않은 다른 접근 방법이 있는지 궁금합니다. 누구나 기분이 좋아지는 방법이 있습니까?