4.工厂方法模式
来源:互联网 发布:淘宝买家信用有什么用 编辑:程序博客网 时间:2024/05/17 00:11
1工厂方法模式的核心内容是:
A:每种方法通过独立的类来表示。
B:通过工厂来创建实例化方法
C:理解:带同一个妹子到不同的地点(麦当劳,肯德基….)去吃饭.
2工厂方法模式的作用:程序访问不同的工厂,来让工厂创建自己想要的操作。
3工厂方法模式具体描述
工厂方法模式:核心工厂类不再负责所有产品的创建,
而是将具体创建的工作交给子类去做,成为一个抽象工厂角色
仅负责给出具体工厂类必须实现的接口,
而不接触哪一个产品类应当被实例化这种细节。
请MM去麦当劳吃汉堡,不同的MM有不同的口味,
要每个都记住是一件烦人的事情,我一般采用Factory Method模式,
带着MM到服务员那儿,说“要一个汉堡”,具体要什么样的汉堡呢,
让MM直接跟服务员说就行了。
4.工厂方法模式类图
5.代码:
#include<iostream>
#include<string>
usingnamespacestd;
//工厂方法模式:核心工厂类不再负责所有产品的创建,
//而是将具体创建的工作交给子类去做,成为一个抽象工厂角色
//,仅负责给出具体工厂类必须实现的接口,
//而不接触哪一个产品类应当被实例化这种细节。
//请MM去麦当劳吃汉堡,不同的MM有不同的口味,
//要每个都记住是一件烦人的事情,我一般采用Factory Method模式,
//带着MM到服务员那儿,说“要一个汉堡”,具体要什么样的汉堡呢,
//让MM直接跟服务员说就行了。
//操作类
classOperation
{
public:
doublenumberA,numberB;
virtualdouble getResult()//
{
return 0;
}
};
//加操作
classaddOperation :publicOperation
{
doublegetResult()
{
returnnumberA +numberB;
}
};
//减操作
classsubOperation :publicOperation
{
doublegetResult()
{
returnnumberA -numberB;
}
};
//乘操作
classmulOperation :publicOperation
{
doublegetResult()
{
returnnumberA*numberB;
}
};
//除操作
classdivOperation :publicOperation
{
doublegetResult()
{
returnnumberA /numberB;
}
};
//工厂
classIFactory
{
public:
virtualOperation *createOperation() = 0;
};
//add工厂
classAddFactory :publicIFactory
{
public:
staticOperation *createOperation()
{
returnnewaddOperation();
}
};
//减工厂
classSubFactory :publicIFactory
{
public:
staticOperation *createOperation()
{
returnnewsubOperation();
}
};
//乘工厂
classMulFactory :publicIFactory
{
public:
staticOperation *createOperation()
{
returnnewmulOperation();
}
};
//除操作
classDivFactory :publicIFactory
{
public:
staticOperation *createOperation()
{
returnnewdivOperation();
}
};
intmain()
{
Operation *oper = MulFactory::createOperation();
oper->numberA = 9;
oper->numberB = 99;
cout <<oper->getResult() << endl;
cin.get();
return 0;
}
运行结果如下:
891
- 4.工厂方法模式
- 工厂模式 -- 工厂方法
- 工厂模式-工厂方法
- 工厂模式-工厂方法
- 工厂 > 工厂方法模式
- 【设计模式】4. 工厂方法模式、抽象工厂模式
- 工厂模式-工厂方法模式
- 工厂模式-工厂方法模式
- 工厂模式---工厂方法模式
- 【模式】工厂方法模式
- 工厂方法,抽象工厂模式
- C#工厂模式-工厂方法
- 工厂模式 和工厂方法
- 工厂模式-C-工厂方法
- 工厂模式以及工厂方法
- 简单工厂、工厂方法、抽象工厂模式
- 简单工厂、工厂方法、抽象工厂模式
- 工厂模式(简单工厂、工厂方法)
- 3.抽象工厂模式
- 机器学习中的相似性度量http://www.cnblogs.com/heaad/archive/2011/03/08/1977733.html
- ACE_TAO sequence<string> strList C++ 映射
- ubuntu编译skynet
- poj2187Beauty Contest 凸包最大距离
- 4.工厂方法模式
- 5.简单工厂模式
- 用快慢指针判断单链表环,找到环入口 扩展到判断两个链表是否相交
- Ubuntu学习笔记之apt-get命令
- 深入oracle分区索引的详解
- poj1288poj1228Grandpa's Estate poj1113Wall
- 6.代理模式
- 内向不是缺点:关于性格内向者的10个误解
- android笔记6-常用控件的介绍二