C语言和设计模式(建造者模式) 【文章都是来自网络,只要自己吸取了就是自己的】
2012-03-02 15:44
489 查看
如果说前面的工厂模式是对接口进行抽象化处理,那么建造者模式更像是对流程本身的一种抽象化处理。这话怎么理解呢?大家可以听我慢慢到来。以前买电脑的时候,大家都喜欢自己组装机器。一方面可以满足自己的个性化需求,另外一方面也可以在价格上得到很多实惠。但是电脑是由很多部分组成的,每个厂家都只负责其中的一部分,而且相同的组件也有很多的品牌可以从中选择。这对于我们消费者来说当然非常有利,那么应该怎么设计呢?
[cpp]
view plaincopyprint?
typedef struct _AssemblePersonalComputer
{
void (*assemble_cpu)();
void (*assemble_memory)();
void (*assemble_harddisk)();
}AssemblePersonalComputer;
[cpp]
view plaincopyprint?
void assemble_amd_cpu()
{
printf("amd cpu!\n");
}
void assemble_kingston_memory()
{
printf("kingston memory!\n");
}
void assmeble_western_digital_harddisk()
{
printf("western digital harddisk!\n");
}
[cpp]
view plaincopyprint?
typedef struct _AssemblePersonalComputer
{
void (*assemble_cpu)();
void (*assemble_memory)();
void (*assemble_harddisk)();
}AssemblePersonalComputer;
[cpp] view plaincopyprint? void assemble_intel_cpu() { printf("intel cpu!\n"); } void assemble_samsung_memory() { printf("samsung memory!\n"); } void assemble_hitachi_harddisk() { printf("hitachi harddisk!\n"); } void assemble_intel_cpu() { printf("intel cpu!\n"); } void assemble_samsung_memory() { printf("samsung memory!\n"); } void assemble_hitachi_harddisk() { printf("hitachi harddisk!\n"); }而对于一个希望配置AMD cpu, kingston内存、西部数据硬盘的朋友。他又该怎么做呢?
[cpp]
view plaincopyprint?
void assemble_amd_cpu()
{
printf("amd cpu!\n");
}
void assemble_kingston_memory()
{
printf("kingston memory!\n");
}
void assmeble_western_digital_harddisk()
{
printf("western digital harddisk!\n");
}
相关文章推荐
- C语言和设计模式(桥接模式) 【文章都是来自网络,只要自己吸取了就是自己的】
- C语言和设计模式(之单件模式)【文章都是来自网络,只要自己吸取了就是自己的】 .
- C语言和设计模式(之组合模式)【文章都是来自网络,只要自己吸取了就是自己的】
- C语言和设计模式(备忘录模式) 【文章都是来自网络,只要自己吸取了就是自己的】
- C语言和设计模式(之模板模式)【文章都是来自网络,只要自己吸取了就是自己的】
- C语言和设计模式(工厂模式)【文章都是来自网络,只要自己吸取了就是自己的】
- C语言和设计模式(责任链模式)【文章都是来自网络,只要自己吸取了就是自己的】
- C语言和设计模式(抽象工厂模式)【文章都是来自网络,只要自己吸取了就是自己的】 .
- C语言和设计模式(迭代器模式) 【文章都是来自网络,只要自己吸取了就是自己的】
- C语言和设计模式(享元模式) 【文章都是来自网络,只要自己吸取了就是自己的】
- C语言和设计模式(命令模式)【文章都是来自网络,只要自己吸取了就是自己的】
- C语言和设计模式(装饰模式) 【文章都是来自网络,只要自己吸取了就是自己的】
- C语言和设计模式(访问者模式) 【文章都是来自网络,只要自己吸取了就是自己的】
- C语言和设计模式(继承、封装、多态) 【文章都是来自网络,只要自己吸取了就是自己的】
- C语言和设计模式(-)【文章都是来自网络,只要自己吸取了就是自己的】
- C语言和设计模式(策略模式) 【文章都是来自网络,只要自己吸取了就是自己的】
- C语言和设计模式(建造者模式)
- 改进卷积神经网络,你需要这14种设计模式(转载自机器之心微信号,mark一下当自己网络训练不好时可以看看)
- 域和工作组的区别(1) 局域网上的资源需要管理,“域”和“工作组”就是两种不同的网络资源管理模式。那么二者有何区别呢?看了这篇文章,您就会明白了。
- 18、C语言和设计模式(建造者模式)