Какой шаблон проектирования использовать в последовательной связи на разных платформах? - PullRequest
0 голосов
/ 04 марта 2011

Я хочу реализовать класс последовательной связи, который может использоваться как на 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 голосов
/ 04 марта 2011

Вы можете использовать Factory.Однако Factory будет немного излишним, если у вас будет только Windows / Linux.Если вы ожидаете, что в будущем вас попросят поддержать множество платформ, имеет смысл сделать то, что вы сделали.

Как работать с заголовочными файлами на другой платформе?

Не совсем понял эту часть.Что вы хотите скомпилировать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...