C语言工厂模式demo
头文件
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef void(*Fun)();
加工工厂1
void PurpleFruitFactory(char* buf)
{
char c_TmpBuf[128];
sprintf(c_TmpBuf,"紫色%s\r\n",buf);
memcpy(buf,c_TmpBuf,strlen(c_TmpBuf));
return;
}
加工工厂2
void RedFruitFactory(char* buf)
{
char c_TmpBuf[128];
sprintf(c_TmpBuf,"红色%s\r\n",buf);
memcpy(buf,c_TmpBuf,strlen(c_TmpBuf));
return;
}
主函数
int main(int argc,char *argv[])
{
char buf[128] = "苹果";
if(atoi(argv[1]) == 1)
PurpleFruitFactory(buf);
else if(atoi(argv[1]) == 2)
RedFruitFactory(buf);
else{
printf("工厂模式错误\r\n");
return -1;
}
printf("%s\r\n",buf);
return 0;
}
执行结果
herold@LAPTOP-JACN25CI:~/1_学习相关$ ./a.out 1
紫色苹果
herold@LAPTOP-JACN25CI:~/1_学习相关$ ./a.out 2
红色苹果
herold@LAPTOP-JACN25CI:~/1_学习相关$ ./a.out 3
工厂模式错误