作者热门文章
- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章C++设计模式之建造者模式(Builder)由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
建造者模式与工厂模式最大的区别在与建造者模式更注重的是创建的一系列过程,如流水化作业,工厂模式强调的是区分不同的工厂和产品,而建造者模式更注重的统一不同产品在流水线上的工序,达到统一作业.
作用 。
建造者模式是将一个复杂对象和他的构造和组装过程分离,这样再重复创建不同对象时使用相同的流程进行建造。对于调用者来说,只需要知道产品的类型,而不需要知道具体的组装过程.
类视图 。
代码实现 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
class
Builder
{
public
:
virtual
void
SelectCpu()= 0;
virtual
void
SelectMatherboard() = 0;
virtual
void
SelectMem() = 0;
virtual
void
SelectDisk() = 0;
virtual
void
SelectPower() = 0;
virtual
void
SelectShell() = 0;
};
//构造PC
class
PCBuilder :
public
Builder
{
public
:
void
SelectCpu() { cout<<
"Select PC Cpu"
<<endl; }
void
SelectMatherboard() { cout<<
"Select PC Matherboard"
<<endl; }
void
SelectMem() { cout<<
"Select PC Mem"
<<endl; }
void
SelectDisk() { cout<<
"Select PC Disk"
<<endl; }
void
SelectPower() { cout<<
"Select PC Power"
<<endl; }
void
SelectShell() { cout<<
"Select PC Shell"
<<endl; }
};
//构造Notebook
class
NoteBookBuilder :
public
Builder
{
public
:
void
SelectCpu() { cout<<
"Select NoteBook Cpu"
<<endl; }
void
SelectMatherboard() { cout<<
"Select NoteBook Matherboard"
<<endl; }
void
SelectMem() { cout<<
"Select NoteBook Mem"
<<endl; }
void
SelectDisk() { cout<<
"Select NoteBook Disk"
<<endl; }
void
SelectPower() { cout<<
"Select NoteBook Power"
<<endl; }
void
SelectShell() { cout<<
"Select NoteBook Shell"
<<endl; }
};
//构造的指挥官
class
Director
{
private
:
Builder *m_pBuilder;
public
:
Director(Builder *builder) { m_pBuilder = builder; }
void
Create(){
m_pBuilder->SelectCpu();
m_pBuilder->SelectMatherboard();
m_pBuilder->SelectMem();
m_pBuilder->SelectDisk();
m_pBuilder->SelectPower();
m_pBuilder->SelectShell();
}
};
//调用
int
main()
{
NoteBookBuilder thin;
Director director(&thin);
director.Create();
return
0;
}
|
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我.
原文链接:http://www.cnblogs.com/chencarl/p/8639169.html 。
最后此篇关于C++设计模式之建造者模式(Builder)的文章就讲到这里了,如果你想了解更多关于C++设计模式之建造者模式(Builder)的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我是一名优秀的程序员,十分优秀!