用C++设计前端/后端系统?

Joo*_*kia 2 c++ user-interface frontend backend

我即将用C++编写程序,但我不确定如何去做.我想创建一个程序,可以与命令行前端一起使用,但也可以使用GUI前端,因为我不想将用户绑定到特定的接口,例如依赖项的小部件工具包.

怎么做最好的方法呢?我知道像RSync和SSH这样的程序在GUI中有前端,但我不确定如何做到这一点.拥有一个只使用system()来运行它的程序,同时拥有一个漂亮的GUI,这不是很麻烦吗?

sbi*_*sbi 7

您可以在库中实现程序的算法,小心避免任何UI内容.算法的API在头文件中指定.

然后,您可以编写多个使用此库的应用程序,一个实现GUI前端,另一个实现命令行界面.它们包括头文件并针对API进行编译,并将库链接到它.
注意不要使用不一致的设置编译库和GUI.

IME首次实现命令行UI时,可以最好地实现算法与UI的分离.您可能必须使用回调来进行分离.


Oli*_*rth 6

在不知道任何其他要求的情况下,最简单的答案就是将您的"后端"编译为库,然后将各种"前端"链接到它.

更复杂的答案涉及将后端设置为守护程序/服务器.

您不应该需要系统调用来执行任何此操作(除非您有非常具体的要求).