在不同平台上串行通信使用什么设计模式?

时间:2011-03-04 09:17:29

标签: design-patterns cross-platform

我想实现一个可以在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();
    };
    };

1 个答案:

答案 0 :(得分:0)

你可以使用Factory。但是如果你只有Windows / Linux,那么Factory会有点矫枉过正。如果您预计将来会要求您支持很多平台,那么就可以做您已做过的事情。

  

如何处理头文件   不同的平台?

不太明白这一部分。你想要编译什么?