C语言和设计模式(工厂模式)
工厂模式是比较简单,也是比较好用的一种方式。根本上说,工厂模式的目的就根据不同的要求输出不同的产品。比如说吧,有一个生产鞋子的工厂,它能生产皮鞋,也能生产胶鞋。如果用代码设计,应该怎么做呢?就像上面说的,现在有胶鞋,那也有皮鞋,我们该怎么做呢? 所以,对于一个工厂来说,创建什么样的鞋子,就看我们输入的参数是什么?至于结果,那都是一样的。
- typedef struct _Shoe
- {
- int type;
- void (*print_shoe)(struct _Shoe*);
- }Shoe;
- void print_leather_shoe(struct _Shoe* pShoe)
- {
- assert(NULL != pShoe);
- printf("This is a leather show!\n");
- }
- void print_rubber_shoe(struct _Shoe* pShoe)
- {
- assert(NULL != pShoe);
- printf("This is a rubber shoe!\n");
- }
- #define LEATHER_TYPE 0x01
- #define RUBBER_TYPE 0x02
- Shoe* manufacture_new_shoe(int type)
- {
- assert(LEATHER_TYPE == type || RUBBER_TYPE == type);
- Shoe* pShoe = (Shoe*)malloc(sizeof(Shoe));
- assert(NULL != pShoe);
- memset(pShoe, 0, sizeof(Shoe));
- if(LEATHER_TYPE == type)
- {
- pShoe->type == LEATHER_TYPE;
- pShoe->print_shoe = print_leather_shoe;
- }
- else
- {
- pShoe->type == RUBBER_TYPE;
- pShoe->print_shoe = print_rubber_shoe;
- }
- return pShoe;
- }
相关推荐
IT之家 2020-03-11
graseed 2020-10-28
zbkyumlei 2020-10-12
SXIAOYI 2020-09-16
jinhao 2020-09-07
impress 2020-08-26
liuqipao 2020-07-07
淡风wisdon大大 2020-06-06
yoohsummer 2020-06-01
chenjia00 2020-05-29
baike 2020-05-19
扭来不叫牛奶 2020-05-08
hxmilyy 2020-05-11
黎豆子 2020-05-07
xiongweiwei00 2020-04-29
Cypress 2020-04-25
冰蝶 2020-04-20