如何设计一个支持插件的程序?

bobya2003 2007-03-21 09:55:56
如何设计一个支持插件的程序,最好能考虑到跨平台,希望大侠们给点参考意见。。。。
...全文
791 31 打赏 收藏 转发到动态 举报
写回复
用AI写文章
31 条回复
切换为时间正序
请发表友善的回复…
发表回复
bobya2003 2007-03-24
  • 打赏
  • 举报
回复
谢谢各位 下星期结帖
boxban 2007-03-22
  • 打赏
  • 举报
回复
以我看来,所谓插件可以简单理解为实现了约定接口规范的软件模块,该软件模块是可以被宿主程序动态加载的。宿主程序预先定义了一系列接口规范以及相应的语义规则等,插件则按照约定实现这些接口,并编译成可动态加载的模块。

正如前面各位DX所言,由于C++缺少ABI(Application Binary Interface),所以实现插件的二进制跨平台是不可能的。然而我们完全可以在源代码一级实现跨平台支持,尽管这也存在一定困难,但技术上是可行的。

至于如何设计接口,这完全是与具体应用相关的东西。接口设计的质量很大程度上取决于设计者。设计者对当前及未来需求的理解及把握、在系统设计方面的功力,对语言特性的了解,对不同平台之间差异的理解等都将对最终的设计产生影响。
orc1984 2007-03-22
  • 打赏
  • 举报
回复
glib
lidongri 2007-03-22
  • 打赏
  • 举报
回复
还有,根据插件的应用范围不同
使用的方法也不同

功能插件?
数据插件?
其他?
bobya2003 2007-03-22
  • 打赏
  • 举报
回复
to :lidongri(海浪 源码之前了无秘密)

看了 http://www.window07.com/other/2006-3-3/k72893.htm

对decorator模式有了了解,感觉不太好应用到插件中来,不知道各位有什么其他建议么。。。。
lidongri 2007-03-22
  • 打赏
  • 举报
回复
bobya2003() ( ) 信誉:100 Blog 2007-03-22 09:37:24 得分: 0
如果接口现在不太好确定,有什么办法可以避免吗? 能不能扩展呢?
--------------
很难

给一个类添加新职责,参见设计模式中decorator模式
bobya2003 2007-03-22
  • 打赏
  • 举报
回复
项目需求还不是很明确,走的是原型,为了以后方便,我现在会尽量考虑的多一点。。。。。
lsaturn 2007-03-22
  • 打赏
  • 举报
回复
貌似程序开发时就该决定是否跨平台了
bobya2003 2007-03-22
  • 打赏
  • 举报
回复
如果接口现在不太好确定,有什么办法可以避免吗? 能不能扩展呢?
lsaturn 2007-03-22
  • 打赏
  • 举报
回复
跨平台跟你们系统有关,跟做插件无关,插件就是操作或者增强主程序的一些功能,约定一个规则保证插件和主程序的交互就可以了,要看你的需求是什么
itdreamer 2007-03-22
  • 打赏
  • 举报
回复
oo
roger_77 2007-03-21
  • 打赏
  • 举报
回复
Wxwidgets+DLL
bobya2003 2007-03-21
  • 打赏
  • 举报
回复
离开一会,下午再来请教...TKS
bobya2003 2007-03-21
  • 打赏
  • 举报
回复
有谁知道bo2k是采用甚么方法支持插件的吗?
taodm 2007-03-21
  • 打赏
  • 举报
回复
理论上方法相同,但代码细节差了很远
bobya2003 2007-03-21
  • 打赏
  • 举报
回复
其他平台下面也能用这种方法吗?
taodm 2007-03-21
  • 打赏
  • 举报
回复
“那一般需要怎么定义接口呢?”
这个只有你自己知道。你要插件实现什么功能,就定什么接口。
bobya2003 2007-03-21
  • 打赏
  • 举报
回复
是指显示调用dll来实现插件吗?那一般需要怎么定义接口呢?
taodm 2007-03-21
  • 打赏
  • 举报
回复
不用corba那就com;com都不允许那也得dll。
不然,你就内建lua/python编译器加载脚本。
这个,无法建议的,必须根据实际想支持什么类型的插件自己想的。
bobya2003 2007-03-21
  • 打赏
  • 举报
回复
如果暂时不考虑跨平台,用C++应该怎么设计这种插件架构呢? 项目不允许用corba。。。。。
加载更多回复(11)
内容概要:本文围绕基于粒子群算法(PSO)的风电与水电(抽水蓄能)联合优化调度问题展开研究,旨在通过智能优化算法实现可再生能源的高效利用与电力系统的经济稳定运行。文中系统阐述了粒子群算法的核心原理及其在电力调度中的适用性,构建了综合考虑风电出力不确定性、抽水蓄能电站调节能力及系统运行约束的联合优化调度模型。采用Matlab进行算法编程与仿真求解,验证了该方法在降低系统综合运行成本、提升新能源消纳水平、增强电网调峰调频能力等方面的优越性能。研究进一步设计了多种对比场景,分析不同调度策略下的系统表现,充分展示了所提模型在应对复杂运行条件时的鲁棒性与实用价值。; 适合人群:具备一定电力系统分析基础和Matlab编程能力的研究生、科研人员,以及从事新能源并网调度、电力系统规划与运行等相关领域的工程师; 使用场景及目标:①应用于风电场与抽水蓄能电站的协同优化调度决策支持;②为高比例可再生能源接入的电力系统提供经济可靠的低碳调度方案;③服务于高校及科研院所中关于智能优化算法在能源系统中应用的教学与科研实验; 阅读建议:建议读者结合提供的Matlab代码深入理解算法实现细节与模型构建逻辑,重点关注目标函数设计、约束条件处理及参数设置对优化结果的影响,并通过复现仿真结果来掌握粒子群算法解决复杂非线性调度问题的关键技术要点。

65,213

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧