如何设计一个支持插件的程序?
如何设计一个支持插件的程序,最好能考虑到跨平台,希望大侠们给点参考意见。。。。
[解决办法]
跨平台啊,
那就使用跨平台库 .....
[解决办法]
啊,还跨平台?那,还是用java、python。。。。吧
[解决办法]
C++程序,因为没有统一的对象模型(貌似更专业的名词是ABI),即使不同编译器编出的东西都很难协同。
C/C++程序,因为没有统一的os隔离机制(java等不只是语言,同时就是os),所以跨平台工作非常困难。
你不如用corba来完成这个想法吧。google corba
[解决办法]
跨平台,这个难啊,用在虚拟机上跑得语言去做吧
[解决办法]
不用corba那就com;com都不允许那也得dll。
不然,你就内建lua/python编译器加载脚本。
这个,无法建议的,必须根据实际想支持什么类型的插件自己想的。
[解决办法]
“那一般需要怎么定义接口呢?”
这个只有你自己知道。你要插件实现什么功能,就定什么接口。
[解决办法]
Wxwidgets+DLL
[解决办法]
glib是跨平台的.
/usr/include/glib-2.0/gmodule.h
[解决办法]
XML
[解决办法]
http://www.xiaozhou.net/ReadNews.asp?NewsID=973
参考一下
[解决办法]
感觉很深奥啊
[解决办法]
跨平台跟你们系统有关,跟做插件无关,插件就是操作或者增强主程序的一些功能,约定一个规则保证插件和主程序的交互就可以了,要看你的需求是什么
[解决办法]
貌似程序开发时就该决定是否跨平台了
[解决办法]
bobya2003() ( ) 信誉:100 Blog 2007-03-22 09:37:24 得分: 0
如果接口现在不太好确定,有什么办法可以避免吗? 能不能扩展呢?
--------------
很难
给一个类添加新职责,参见设计模式中decorator模式
[解决办法]
还有,根据插件的应用范围不同
使用的方法也不同
功能插件?
数据插件?
其他?
[解决办法]
glib
[解决办法]
以我看来,所谓插件可以简单理解为实现了约定接口规范的软件模块,该软件模块是可以被宿主程序动态加载的。宿主程序预先定义了一系列接口规范以及相应的语义规则等,插件则按照约定实现这些接口,并编译成可动态加载的模块。
正如前面各位DX所言,由于C++缺少ABI(Application Binary Interface),所以实现插件的二进制跨平台是不可能的。然而我们完全可以在源代码一级实现跨平台支持,尽管这也存在一定困难,但技术上是可行的。
至于如何设计接口,这完全是与具体应用相关的东西。接口设计的质量很大程度上取决于设计者。设计者对当前及未来需求的理解及把握、在系统设计方面的功力,对语言特性的了解,对不同平台之间差异的理解等都将对最终的设计产生影响。
怎么设计一个支持插件的程序
如何设计一个支持插件的程序?如何设计一个支持插件的程序,最好能考虑到跨平台,希望大侠们给点参考意见。。。。
