Материалы книги получены с 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 ничего не будут знать о произошедшей локализации (предполагается, что вы собираетесь создать действительно универсальное, гомоморфное представление окна в графическом интерфейсе - задача, перед которой дрогнет даже самый отчаянный проектировщик).
Назад Содержание Далее
|