我想实现一个可以在linux和windows平台上使用的串行通信类。工厂方法适合这个类吗?如何处理不同平台上的头文件?例如我想在windows上编译代码,所以我不能在linux上使用头文件,我应该使用预处理器吗?
//pseudocode
class ComDevice
{
virtual void getBytes()=0;
};
class LinuxComDevice:public ComDevice
{
void getBytes();
};
class WindowsComDevice:public ComDevice
{
void getBytes();
};
class DeviceFactory
{
ComDevice createDevice()
{
if(platformIsWindows())
return new WindowsComDevice();
else return new LinuxComDevice();
};
};
答案 0 :(得分:0)
你可以使用Factory。但是如果你只有Windows / Linux,那么Factory会有点矫枉过正。如果您预计将来会要求您支持很多平台,那么就可以做您已做过的事情。
如何处理头文件 不同的平台?
不太明白这一部分。你想要编译什么?