跨平台GUI工具包开发详解
1. 工厂模式与组件创建
1.1 工厂接口与实现
在跨平台GUI开发中,为了实现不同平台的组件创建,采用了工厂模式。以下是相关的接口定义:
virtual RadioButtonImpl *MakeRadioButton();
virtual CheckBoxImpl *MakeCheckBox();
virtual AppImpl *MakeApp();
AppImpl *GetAppImpl() {return m_appImpl;};
private:
CocoaFactory();
AppImpl *m_appImpl;
1.2 按钮创建示例
以按钮创建为例, Button 的构造函数通过 GetWidgetFactory() 获取平台特定的单例工厂对象,然后调用 MakeButton() 方法创建 ButtonImpl 对象:
Button::Button()
{
WidgetFactory *factory = GetWidgetFactory();
if (factory)
m_button = factory->MakeButton();
}
在Mac OS X平台上, GetWidgetFactory() 会调用 <
超级会员免费看
订阅专栏 解锁全文
1664

被折叠的 条评论
为什么被折叠?



