天天看点

开源项目推荐:基于Qt的QuickEven

基于QT实现的一套低耦合开发模板,线程管理,类自动注入,控制和界面的彻底分离:

https://gitee.com/fmldd/Quick-Event

问题起源:

1.在Qt编码过程中对于添加删除功能或界面,类之间的相互引用总伴随着代码各处修改,期望寻求一种办法去除这种依赖关系?使用发布订阅的设计模式和qt消息循环系统完美做到了这一点,非常低的耦合度,可以让你删除任意的界面或控制类,无需修改代码直接编译[只是相关功能或界面没有了程序依然可以run],甚至可以将你的每个类都编译成动态库,在运行时动态加载或去除;

2.既然已经做到了松耦合,为什么还需要自己创建类的实例呢?能否向java一样通过注解,直接创建实例化对象,这样再C++中对于头文件的引用也可去除了;

3.QT对象具有线程归属,类的自动注入带来了对象线程管理问题;

4.完美退出,确保自己的程序exited with code 0,无论是主动关闭或被杀死;

为了解决以上问题,基于QT开发QuickEven

码云地址:

主要实现了

1.事件发布和订阅

2.线程管理

3.类自动注入

4.参考QMetaEvent对于事假的再封装;

希望能在协同开发中,让每个开发者只关注自己的功能点,降低代码的耦合度,欢迎大家指正;