С++ - язык, который изучается постепенно.Локализованное использование производящих функций


Материалы книги получены с http://www.itlibitum.ru/

Локализованное использование производящих функций

Одно из самых замечательных применений производящих функций - возможность изолирования кода, изменяемого при переносе программы на другой компьютер или среду. Открытый интерфейс, выраженный средствами базового класса, остается прежним, а в файле .cpp прячется специализированный производный класс с кодом, ориентированным на данную платформу.

class Window {

public:

static Window* make();

// Далее следует гомоморфный интерфейс

};

// В window.cpp для ОС Windows

class MS_Window : public Window { ... };

Window* Window::make()

{

return MS_Window();

}

// или в window.cpp для Mac OS

class Mac_Window : public Window { ... };

Window* Window::make()

{

return Mac_Window*();

}

Чтобы переключиться с одной платформы на другую, достаточно перекомпилировать и

перекомпоновать файл .cpp. Все клиенты класса Window ничего не будут знать о произошедшей локализации (предполагается, что вы собираетесь создать действительно универсальное, гомоморфное представление окна в графическом интерфейсе - задача, перед которой дрогнет даже самый отчаянный проектировщик).


Назад    Содержание    Далее    

Copyright 2005. Климов Александр. All Right Reserved.
Сайт создан в системе uCoz