【问题标题】:participant pattern in design patterns?设计模式中的参与者模式?
【发布时间】:2023-03-07 08:16:01
【问题描述】:

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

在查看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(向导、内容辅助图像和类型/文本命名)
  • javascript 元素过滤器
  • javaScriptEditorTextHovers
  • jsdocCompletionProcessor
  • 快速修复处理器
  • quickAssistProcessors
  • foldingStructureProviders
  • 查询参与者
  • javaScriptCompletionProposalComputer
  • javaScriptCompletionProposalSorters

【问题讨论】:

  • 存在来自 Erich Gamma 的 "Extension Object Pattern"(他也参与了 Eclipse 编程)。它也可能是“责任链”之类的东西。

标签: java eclipse design-patterns plugins


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    在我看来,*Participant 课程是 GoF 的strategy pattern 的变体。

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

    【讨论】:

    • 哦,那我应该扩展 *participants 类。感谢您的评论。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-22
    • 2010-12-24
    • 1970-01-01
    • 1970-01-01
    • 2012-03-10
    • 2014-10-14
    • 2022-08-21
    相关资源
    最近更新 更多