26种设计模式总结(设计模式之工厂模式)
介绍:工厂模式是一种创建型设计模式,同时也是一种比较典型的解耦模式,工厂模式的实质其实就是" 定义一个生产的接口,让客户来决定具体生产什么产品 ",现在小编就来说说关于26种设计模式总结?下面内容希望能帮助到你,我们来一起看看吧!
26种设计模式总结
介绍:
工厂模式是一种创建型设计模式,同时也是一种比较典型的解耦模式,工厂模式的实质其实就是" 定义一个生产的接口,让客户来决定具体生产什么产品 "。
作用:
- 能够有效的封装代码,隐蔽具体的生产逻辑:将产品的具体生产过程封装起来,使得调用者根本无需关心产品的具体生产过程,只需告诉工厂自己需要什么样的产品就可以。即便生产过程有所调整,也是对调用者没有任何影响的;
- 扩展性强:当我们新增另外种类的产品时,对其他类型的产品没有任何影响;
类比:
一个衣服工厂可以根据不同的诉求生产出不同面料的衣服,客户只需要告诉工厂要生产什么面料的衣服就可以,具体生产过程是工厂自己的事情;
代码示例:
typedef enum
{
COTTON,
LEATHER,
FABRIC_MAX,
};
typedef struct _Clothing
{
int fabric; /*面料*/
void (*make_Clothing)(void);
}Clothing;
void cotton_clothes(void)
{
printf("Make cotton clothes\r\n");
}
void leather_clothes(void)
{
printf("Make leather clothes\r\n");
}
Clothing* manufacture_clothing(int fabric)
{
assert(fabric < FABRIC_MAX);
Clothing* pClothing = (Clothing*)malloc(sizeof(Clothing));
assert(NULL != pClothing);
memset(pClothing, 0, sizeof(Clothing));
pClothing->fabric = fabric;
switch(fabric)
{
case COTTON:
pClothing->make_clothing = cotton_clothes;
break;
case LEATHER:
pClothing->make_clothing = leather_clothes;
break;
}
return pClothing;
}
免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com