首页 > 解决方案 > 如何编写与框架无关的程序

问题描述

我最近读了一本 OOP 书(我认为是 Robert Martin),它强调使用一个核心对象来调用它所使用的东西的接口。这里的重点是外围对象依赖于核心而不是相反。这允许更好的模块化、灵活性、二进制文件的分布、构建时间等。假设您还可以允许您的程序独立于任何特定框架,例如 GUI、数据库等。但是我很难将框架与核心。

例如 Qt 框架提供类QTreeView;一些函数采用QAbstractItemModel. 可以想象我找到或编写了一个我想使用的不属于 Qt 世界的不同模型/视图,或者对图形部分使用一些即时模式 api,等等。

那么我如何编写我的核心以完全不知道 Qt 呢?我是否使用ITreeView与 类似的函数QTreeView、听起来相似的非 Qt 参数组成一个,然后QTreeView在将所有参数转换为真正的 Qt 类型后委托给一个真实实例?重新创建这么多框架只是为了使其通用,这似乎很愚蠢。

或者在现实世界中,人们是否完全沉浸在 Qt 中并且将其分开是不现实的?

标签: c++qt

解决方案


推荐阅读