我试着找一些关于“参与者模式”的材料和文章,但我找不到任何东西。
在查看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
答案 0 :(得分:1)
从SearchEngine和SearchParticipant的代码来看,它似乎是责任链和策略模式的混合体。从一方面来看,每个SearchParticipant
定义了自己的索引,搜索,报告等操作的逻辑,而另一方面SearchEngine
使用参与者链来执行组合{{} 3}}。
答案 1 :(得分:0)
从我的观点来看,*参与者课程是GoF strategy pattern的变体。
基本插件(如您的案例中的Javascript开发工具)提供了一个界面,参与者/其他策略可以执行其他行为/算法。