用于C ++应用程序的Java GUI - 这是一个好的设计吗?

时间:2011-10-20 21:48:20

标签: java c++ swing user-interface interaction-design

是的,当面试官提到他们使用Java-swing GUI进行C / C ++应用程序时,我有点意外。我很好奇并问他们如何将这些整合在一起,他的回答是“通过消息传递”。有趣! 嗯,我是这种方法的新手,如果那里的公司真的使用这种设计,我很好奇。如果是,那么这个设计有一个很大的优势吗?我理解这个设计如何运作有点困难,如果你有任何参考请分享。

仅供参考,该产品是基于数据备份的应用程序(可能在Linux / Unix平台上)。 谢谢。

CV

4 个答案:

答案 0 :(得分:7)

我认为没有错。通过消息传递集成不同的组件是很常见的。我认为通常更好的是拥有一个同构环境(例如,所有使用Java而不是Java和C ++编写的应用程序),但通常情况下,您必须与使用其他语言编写的旧版或第三方组件集成,成本原因或没有其他选择。

消息传递是执行此操作的常用方法。我认为HTTP在“消息传递”的保护下,几乎每种语言都有一个HTTP库 - 这使它成为一种常见的消息传递“语言”。在集成非常异构的系统时,有专门的工具/框架,不仅可以集成组件,还可以集成消息系统(例如ESBs)。

答案 1 :(得分:3)

如果没有关于应用程序要求的更多信息,很难判断这是一个好的设计。

另一件需要考虑的事情是,有时候面试官会建议奇怪的设计来看看候选人的反应。当我正在招聘一个不是我个人能力的角色时,我通常会这样做,但我有经验(通常是事情)。我的目标是看看候选人是否比我更好地解决问题!不好的候选人会盲目地接受我糟糕的解决方案。更好的候选人将立即建议更好的解决方案最佳候选人将比较和对比我的弱解决方案与他们更好的解决方案,并探讨每个选项何时有意义。

我猜想Java端口是出于可移植性的原因而选择的。我认为基于浏览器的界面可以实现同样的目标,但也许他们的UI / UX人员真的很喜欢Java。

答案 2 :(得分:1)

为什么他们必须首先调用C ++函数,然后最重要的是他们可能已经分配了客户端需求,这可能存在限制。您将如何开发解决方案,以便构建一个消息传递系统并在服务器端与C ++进行交互。这是一个工作解决方案在一天结束时。我不希望ui必须用C ++构建,因为服务器端是用C ++编写的,有时你需要将不同的技术组合在一起才能实现你的解决方案。

答案 3 :(得分:1)

这是一种可行/可行的方法,当我作为承包商2005-2006在那里工作时,我看到它用于非常大的(财富20,如果有这样的东西)公司。

当我问为什么时,我被告知:

  1. 需要Linux GUI,java / SWING是一个值得尊敬的选择。我还认为他们有一些需要工作的Java开发人员。
  2. 他们在C ++ / C中拥有大型,性能关键的代码库。
  3. 他们已经广泛使用了消息传递,并为此设置了库。
  4. 消息传递界面虽然开发成本更高,但允许团队编写测试程序(例如用python脚本替换生产GUI)。
  5. 大家都说,Qt和GTK / Gtkmm是非常好的GUI框架,为什么不使用那些?