求知 文章 文库 Lib 视频 Code iProcess 课程 认证 咨询 工具 火云堂 讲座吧   成长之路  
会员   
要资料
 
追随技术信仰

随时听讲座
每天看新闻
 
 

C语言和设计模式 教程
开篇
单件模式
原型模式
组合模式
模板模式
工厂模式
责任链模式
抽象工厂模式
迭代器模式
外观模式
代理模式
享元模式
装饰模式
适配器模式
策略模式
中介者模式
建造者模式
桥接模式
观察者模式
备忘录模式
解释器模式
命令模式
状态模式
访问者模式
继承、封装、多态
 
 

建造者模式
88 次浏览
21次
 捐助

如果说前面的工厂模式是对接口进行抽象化处理,那么建造者模式更像是对流程本身的一种抽象化处理。这话怎么理解呢?大家可以听我慢慢到来。以前买电脑的时候,大家都喜欢自己组装机器。一方面可以满足自己的个性化需求,另外一方面也可以在价格上得到很多实惠。但是电脑是由很多部分组成的,每个厂家都只负责其中的一部分,而且相同的组件也有很多的品牌可以从中选择。这对于我们消费者来说当然非常有利,那么应该怎么设计呢?

typedef struct _AssemblePersonalComputer  
{
void (*assemble_cpu)();
void (*assemble_memory)();
void (*assemble_harddisk)();

}AssemblePersonalComputer;

对于一个希望配置intel cpu,samsung 内存、日立硬盘的朋友。他可以这么设计,

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内存、西部数据硬盘的朋友。他又该怎么做呢?

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");
}

 


您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码: 验证码,看不清楚?请点击刷新验证码 必填



88 次浏览
21次
 捐助
 

每天2个文档/视频
扫描微信二维码订阅
订阅技术月刊
获得每月300个技术资源
 
 

关于我们 | 联系我们 | 京ICP备10020922号 京公海网安备110108001071号