设计模式中的参与者模式?

时间:2013-03-22 09:16:23

标签: java eclipse design-patterns plugins

我试着找一些关于“参与者模式”的材料和文章,但我找不到任何东西。

在查看org.eclipse.wst.jsdt项目的过程中,我发现它在下面提供了一些扩展点。

我想使用这些扩展点。 在此之前,如果我对“参与者模式”有一些了解,那么理解整体架构会很棒。 eclipse源代码中有很多* Participant类。 (例如ValidationParticipant,SearchParticipant等) 你能帮助我吗?

http://wiki.eclipse.org/JSDT#Extension_Points

  

JSDT功能是可嵌入的。这意味着,例如,那   JavaScript编辑功能可嵌入HTML和JSP中   编辑器,包括脚本标记和脚本属性值。该   JSDT非常灵活,因此可以使用其他语言的脚本支持   使用为WTP 3.1规划的转换器接口。

     

支持以下JSDT扩展点:

     
      
  • 全局范围变量初始值设定项
  •   
  • 全局范围容器初始化程序核心
  •   
  • 代码格式化程序
  •   
  • 验证参与者
  •   
     

将支持以下jsdt.ui扩展点:

     
      
  • 全局范围容器初始化程序ui(Wizzard,内容辅助图像和类型/文本命名)
  •   
  • javascript元素过滤器
  •   
  • javaScriptEditorTextHovers
  •   
  • jsdocCompletionProcessor
  •   
  • quickFixProcessors
  •   
  • quickAssistProcessors
  •   
  • foldingStructureProviders
  •   
  • queryParticipants
  •   
  • javaScriptCompletionProposalComputer
  •   
  • javaScriptCompletionProposalSorters
  •   

2 个答案:

答案 0 :(得分:1)

SearchEngineSearchParticipant的代码来看,它似乎是责任链策略模式的混合体。从一方面来看,每个SearchParticipant定义了自己的索引,搜索,报告等操作的逻辑,而另一方面SearchEngine使用参与者链来执行组合{{} 3}}。

答案 1 :(得分:0)

从我的观点来看,*参与者课程是GoF strategy pattern的变体。

基本插件(如您的案例中的Javascript开发工具)提供了一个界面,参与者/其他策略可以执行其他行为/算法。