我想为可以在一个平台下集成各种第三方软件(可执行文件)的软件进行架构设计.
默认情况下,标准项目类型将添加到平台.项目类型定义了执行不同软件的方式及其输入和输出文件.
用户可以自定义可用的标准项目类型,并将其作为定义新自定义执行流的新项目类型添加到平台.
此外,它应该支持轻松扩展和自定义功能.我读到基于插件的架构支持两者.
基于插件的架构有哪些优缺点?我们有更好的架构可以用于这种场景吗?
提前致谢:)
mdm*_*dma 45
可插拔系统的好处是
但其中一些优势也是弱点:
设计一个好的插件环境与设计一个好的库有很多相同的挑战.如果您自己同时生成环境和插件,那么它就不会那么糟糕,因为您可以随着环境的发展更新所有插件,但如果插件api对所有人开放,则需要仔细规划和执行才能获得设计随着环境的发展,避免过多插件重写的权利.
弗雷德布鲁克斯描述的" 第二系统综合症 "提倡所开发的第二个系统通常过于通用,旨在获得最大的灵活性,有时产生"平台内的平台"/" 内部平台效应 ".当需求不存在或未指定时,可插拔设计通常被视为一种出路.为了补偿,软件尽可能灵活,以尝试处理"随之而来的".
如果它描绘了一幅沉闷的画面,那么可插拔 - 可插拔系统可能非常棒且具有很多优势,但它们价格昂贵.在深入了解可插拔系统之前,谨慎地制定满足所需功能所需的所有插件的要求.然后,这将帮助您确定可插拔设计是否值得付出努力,或者一些更简单的方法同样适用.
插件架构的优势显然是灵活性的提高.这允许其他开发人员以首先没有预料到的方式扩展您的应用程序.请注意,有各种插件架构,从灵活到极端灵活.最灵活的一种称为完全插件架构,在eclipse中使用.
缺点是要真正灵活,你必须开发一个结合插件之间的加载,卸载和通信的可靠框架.插件之间的通信也会有轻微的性能开销.
有关如何创建插件架构的讨论,请查看此问题.