设计模式 – Web应用程序中的插件体系结构(示例或代码段?)

我正在尝试学习开发Web应用程序(最好是NodeJS / MongoDB,尽管我以前使用过PHP和Python),这是通过插件进行高度可扩展和自定义的,以实现禁用的功能。

一个可能的选择是使用带有插件和小部件的钩子的Wordpress挂钩,但是它缺乏视图和逻辑代码的正确分隔。这仍然是一个学习的选择。还有其他选择吗?

你有任何代码片段或示例应用程序,我可以从中学习吗?语言或框架不是那么重要,我大概可以概括出这个概念

一个很好的插件架构很难从头开始,但提供了自己的回报。它使软件灵活和简单,通过本地化复杂性来维护。它需要的最重要的技能是写入loosely coupled code的能力。这需要非常牢固地掌握多态,Demeter’s Law和相关的Hollywood principle

我建议您最初熟悉这些,然后是以下设计模式,这将大大降低难度:

> Command Pattern:为插件模块提供了一个一致的入口点,允许它们随时更换和更换一个Web Based example from IBM
> Memento:捕获,保持和外部状态而不违反封装,允许由容器配置插件。
> Call Back:允许插件模块从容器/环境访问“服务”。
> Dependency Injection:一种从其环境中松开插件模块耦合的方法。
> Abstract Factory Pattern:在环境中安装和实例化插件。
> Builder Pattern:对于插件模块相互依赖的任何非平凡的插件架构都是必需的。

一旦掌握了这些,请研究一些现有的Plugin Framework实现和体系结构,以了解它们是如何被使用的。 Apache在StrutsGeronimo custom server assembliesTomcat JNDI Resources有几个;也是Eclipse plugin framework

http://stackoverflow.com/questions/10763006/plugin-architecture-in-web-apps-examples-or-code-snippets

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:设计模式 – Web应用程序中的插件体系结构(示例或代码段?)