Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Design patterns 在不同平台上的串行通信中使用什么设计模式?_Design Patterns_Cross Platform - Fatal编程技术网

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

Design patterns 在不同平台上的串行通信中使用什么设计模式?,design-patterns,cross-platform,Design Patterns,Cross Platform,我想实现一个串行通信类,它可以在linux和windows平台上使用。工厂法是否适用于此类?如何处理不同平台上的头文件?例如,我想在windows上编译代码,所以我不能在linux上使用头文件,我应该使用预处理器吗 //pseudocode class ComDevice { virtual void getBytes()=0; }; class LinuxComDevice:public ComDevice { void getBy

我想实现一个串行通信类,它可以在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();
    };
    };

你可以使用工厂。然而,若你们只打算使用Windows/Linux,那个么这个工厂就有点过头了。如果你预计将来会被要求支持很多平台,那么做你已经做过的事情是有意义的

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


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

你用什么语言编写?