设备驱动程序和图形的类设计
Class design for device driver and graphics
我的头撞在墙上,试图组织一些类之间的一组简单关系。基本上,试图以一种合理的方式将3个类联系在一起。
具有3个类别的简化场景:
1-LCD设备驱动程序2-简单图形库3-计数器显示类
到目前为止,我在伪代码中得到了什么:
class Driver : public Graphics
{
public:
void loadImage(int * image){
// load image into device memory
}
};
class Graphics
{
public:
int image[10];
void displayImage(int * image){
// create/ manipulate image here and...
loadImage(image); //send to device
}
virtual void loadImage(int * image){}
};
class Counter
{
public:
int counterImage[10];
void makeCounter(int * counterImage){
//make a clock counter graphic and…
displayImage(counterImage);
}
};
显然,我还没有弄清楚如何将displayImage(counterImage)
函数集成到Counter
类中。我可以在Counter
类中virtual
是displayImage()
的一个版本,但我认为这将意味着Graphics
必须始终继承Counter
,而我并不热衷于此。有没有更好的方法允许Counter
访问Graphics
类函数(最终传递到LCD驱动程序),同时与之保持分离?
为什么要使用继承?
根据对你的类的描述,我看不出它们之间有任何专业化/某种关系,这意味着你应该在这种情况下使用组合:
- 图形
Driver
需要能够显示一些Image
(您的示例中没有这种类型) Graphics
图像加载库需要加载Image
的能力Counter
显示器应该同时使用Driver
和Graphics
,两者都在其构造函数中给定,并与它们一起显示计数器
这个概念被称为组合而非继承,你可以用谷歌获得更多关于它的好文章。(基本上:OOP和使用类并不意味着所有东西都必须使用继承)
相关文章:
- 在Windows10上为BLEGATT设备开发HID输入设备驱动程序
- c ++ 是否有任何用于列出 Windows 驱动程序管理器控制台中显示的设备驱动程序的 Windows API?
- 在 Fedora 20 中查找简单设备驱动程序的头文件
- 使用独立的 c++ 程序处理用 C 编写的字符设备驱动程序
- 我可以在C 中编写iOS的设备驱动程序吗?
- 设备驱动程序内存缓冲区处理器缓存问题
- 通过现有设备驱动程序访问设备
- 设备驱动程序的库
- C++:在Windows中禁用设备驱动程序
- Win32_SystemDriver可禁用设备驱动程序
- 设备驱动程序和图形的类设计
- 如何在程序崩溃后恢复设备驱动程序
- 在QGraphicsScene上显示来自设备驱动程序的QWidget与本地窗口句柄(HWND)
- 微软虚拟音频设备驱动程序示例(MSVAD)只创建44字节的文件
- 在ubuntu上运行cuda -它是否需要一个本地设备驱动程序(使用nvidia显卡)
- 发送IOCTL到Windows设备驱动程序- CreateFile失败
- 设备驱动程序:Windows ReadFile函数超时
- TeamCity使用c++项目构建VS2012解决方案,其中包含设备驱动程序无法清理目录
- 使用IBM 3514 Borland图形接口驱动程序在高分辨率模式下Turbo c++在Windows 7 64位操作系
- 使用SetupDI API功能,禁用启用COM端口设备驱动程序需要以管理员身份运行