c++ - 如何编写与框架无关的程序
问题描述
我最近读了一本 OOP 书(我认为是 Robert Martin),它强调使用一个核心对象来调用它所使用的东西的接口。这里的重点是外围对象依赖于核心而不是相反。这允许更好的模块化、灵活性、二进制文件的分布、构建时间等。假设您还可以允许您的程序独立于任何特定框架,例如 GUI、数据库等。但是我很难将框架与核心。
例如 Qt 框架提供类QTreeView
;一些函数采用QAbstractItemModel
. 可以想象我找到或编写了一个我想使用的不属于 Qt 世界的不同模型/视图,或者对图形部分使用一些即时模式 api,等等。
那么我如何编写我的核心以完全不知道 Qt 呢?我是否使用ITreeView
与 类似的函数QTreeView
、听起来相似的非 Qt 参数组成一个,然后QTreeView
在将所有参数转换为真正的 Qt 类型后委托给一个真实实例?重新创建这么多框架只是为了使其通用,这似乎很愚蠢。
或者在现实世界中,人们是否完全沉浸在 Qt 中并且将其分开是不现实的?
解决方案
推荐阅读
- java - 使用 Spring Data MongoRepository 进行更新查询的自定义方法
- sql - 在函数的while循环中插入查询
- c# - 统一更改 Texture2D 格式
- jsp - 如何将后台视频插入我的网站?
- swift - CoreMedia DAL 插件在 macOS 上通过 USB 中断 Internet 共享
- android - 如何将日期从一项活动传递到另一项活动?
- javascript - javascript中“”和“”的差异输出
- sql - 根据另一个 SQL 的值在一列中添加值
- twitter-bootstrap - 移动设备上的复杂 Bootstrap 堆叠列
- java - 如何将 NamedJdbcTemplate 与 Postgres 正则表达式一起使用