Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1687695
  • 博文数量: 782
  • 博客积分: 2455
  • 博客等级: 大尉
  • 技术积分: 4140
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-06 21:37
个人简介

Linux ,c/c++, web,前端,php,js

文章分类

全部博文(782)

文章存档

2015年(8)

2014年(28)

2013年(110)

2012年(307)

2011年(329)

分类: LINUX

2012-01-04 13:19:52

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

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");
}
阅读(645) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~