C语言设计模式—简单工厂模式

一 模式动机

先来看这样一个需求:这天,你的老大跟你说:”小李,公司的物料不够用了,你去嘉立创商城买一些 0805 电容回来,然后去捷多邦买点 0603 电容回来”。”好的”,于是你回到工位上准备开始干活。

试想一下,如果这个场景用程序来实现,应该怎么写?从 C 语言传统的面向过程来看,应该这样写:

#include < stdio.h >

void login_website(char *str);

void enter_jlc();

void bug_jlc_capacity(char *str);

void enter_jdb();

void bug_jdb_capacity(char *str);

int main()

{

/* 登录淘宝网 */

login_website(“www.taobao.com”);

/*进入嘉立创旗舰店*/

enter_jlc();

/*购买嘉立创的0805电容*/

bug_jlc_capacity(“0805”);

/*进入捷多邦旗舰店*/

enter_jdb();

/*购买捷多邦的0805电容*/

bug_jdb_capacity(“0603”);

return 0;

}

void login_website(char *str)

{

printf(“欢迎登录:%s!\n”,str);

}

void enter_jlc()

{

printf(“进入嘉立创旗舰店\n”);

}

void bug_jlc_capacity(char *str)

{

printf(“购买嘉立创电容:%s\n”,str);

}

void enter_jdb()

{

printf(“进入捷多邦旗舰店\n”);

}

void bug_jdb_capacity(char *str)

{

printf(“购买捷多邦电容:%s\n”,str);

}