这些日子做的课程设计都是一个人在单在单一语言下用一个库来完成的,但是但涉及到不同语言,不同库,不同人开发的功能模块时,就该如何整合成一个整体呢?
我现在主要用的语言是c++和java,希望大神们能提供一些宝贵资料,甚至是好的源码,感激不尽 软件开发
[解决办法]
底层用C,C++,功能性的东西做成DLL提供API。
然后你想用Java,就通过中间层JNI,这样Java就可以提供Java API,这个时候如想做成WebService,直接调用Java API就可以了。
一切问题都能通过中间层解决的。
[解决办法]
1) 多进程模式,很多模块写成若干可执行程序,合作执行。
大型软件,很多都是多进程的。
2)DLL 模块,很多大型软件,都有很多动态库,功能模块写在动态库里,应用程序使用动态库工作。
3)com 模块,面向对象的模块化基本都是用com模型。 这也是一种DLL,不过使用COM这种标准化的模块方式。
4)界面和功能分离,以上方法都可以实现界面和功能分离;不过这里更强调而已。
这么做的好处是,界面和功能可以分别编写,升级。
java和C++可以很好地合作,java做界面,C++实现某些功能更好。
[解决办法]
不要做A语言代码修改为B语言代码的无用功。
也不要做用A语言代码直接调用B语言代码库这样复杂、这样容易出错的傻事。
只需让A、B语言代码的输入输出重定向到文本文件,或修改A、B语言代码让其通过文本文件输入输出。
即可很方便地让A、B两种语言之间协调工作。
共享临时文本文件这种进程之间的通讯方法相比其它方法的优点有很多,下面仅列出我现在能想到的:
进程之间松耦合
进程可在同一台机器上,也可跨机,跨操作系统,跨硬件平台,甚至跨国。
方便调试和监视,只需让第三方或人工查看该临时文本文件即可。
方便在线开关服务,只需删除或创建该临时文本文件即可。
方便实现分布式和负载均衡。
方便队列化提供服务,而且几乎不可能发生队列满的情况(除非硬盘空间满)
……