抽象工厂(创建型模式)
来源:互联网 发布:中国国家数据库 编辑:程序博客网 时间:2024/06/15 11:57
提供一个创建一系列相关或者相互依赖对象的接口,而无需指定具体的类。比如我有两套界面,当我想切换的时候怎么才能最少改变代码,而又不影响结构呢。
我们提供一个抽象工厂来提供创建一套界面的方法,具体的两套界面分别基础这个抽象工厂方法。具体看下面的代码
class WindowFactory{public:virtual void CreateMainWindow() = 0;virtual void CreateMenuWindow() = 0;virtual void CreateAreaWindow() = 0;};class ClassicWindow : public WindowFactory{public:virtual void CreateMainWindow(){cout<<"经典界面主窗口"<<endl;}virtual void CreateMenuWindow(){cout<<"经典界面菜单窗口"<<endl;}virtual void CreateAreaWindow(){cout<<"经典界面显示窗口"<<endl;}};class NewWindow : public WindowFactory{public:virtual void CreateMainWindow(){cout<<"新界面主窗口"<<endl;}virtual void CreateMenuWindow(){cout<<"新界面菜单窗口"<<endl;}virtual void CreateAreaWindow(){cout<<"新界面显示窗口"<<endl;}};class Client{public:Client(WindowFactory* wf) : m_windowFactory(wf){}public:void CreateMainWindow(){m_windowFactory->CreateMainWindow();}void CreateMenuWindow(){m_windowFactory->CreateMenuWindow();}void CreateAreaWindow(){m_windowFactory->CreateAreaWindow();}private:WindowFactory* m_windowFactory;};int _tmain(int argc, _TCHAR* argv[]){Client client1(new ClassicWindow);client1.CreateMainWindow();client1.CreateMenuWindow();client1.CreateAreaWindow();Client client2(new NewWindow);client2.CreateMainWindow();client2.CreateMenuWindow();client2.CreateAreaWindow();return 0;}
0 0
- 创建型模式:工厂模式(简单工厂模式,抽象工厂模式,工厂模式)
- 抽象工厂(创建型模式)
- 抽象工厂方法模式(创建型)
- 抽象工厂模式(创建型)
- 创建型模式-抽象工厂
- 创建型模式-抽象工厂
- 抽象工厂模式(创建型)
- 设计模式-抽象工厂模式(创建型模式)
- 2. 抽象工厂模式(Abstract Factory) ---------- 创建型模式
- 设计模式笔记(3)---抽象工厂模式(创建型)
- 创建型设计模式(4):抽象工厂模式
- 设计模式笔记(3)---抽象工厂模式(创建型)
- java设计模式(创建型)之抽象工厂模式
- 创建型模式2:抽象工厂模式(Abstract Factory)
- 创建型模式之抽象工厂模式(AbstractFactory)
- (创建型模式三)抽象工厂模式
- 设计模式(三)抽象工厂模式(AbstractFactory)-创建型
- 创建型模式:抽象工厂模式(Abstract Factory Pattern)
- spring源码下载
- unbuntu13.10与windows之间设置共享文件夹
- Important Website List
- 2014.4.11 Seven的开发
- android action bar 多选操作 兼容2.X的方法
- 抽象工厂(创建型模式)
- 【Net】网络号+子网号+子网主机号
- Google Chubby介绍
- Flip Image 2014 ( V4.0.2 ) 商业版&试用版免费下载(含电子古籍、家谱制作功能)
- 第二十九讲 : ADO.NET(玩SQL语句 主要是OLEDB实例操作)
- 标题栏
- HTML5 地理定位 【来自百度应用分享平台】
- PHP平台的AFM-RPC实现----amfphp(二)HelloWorld范例
- HDU 1016 Prime Ring Problem