抽象工厂模式

本文介绍了抽象工厂模式的概念,通过一个示例代码展示了如何使用抽象工厂模式来创建一系列相关产品,而不需关注具体产品的实现。讨论了该模式的优点,如易于添加新产品族、分离具体类以及确保产品一致性;同时也指出了其缺点,即增加新产品较为麻烦。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

声明:本博文篇幅短,适合快速回顾、朝花夕拾,不适合入门详解。

一、概念

抽象工厂允许客户使用抽象的接口来创建一组相关的产品,而不需要知道实际产出的具体产品是什么。

二、模式结构图


三、例子


class ClothesFactory
{
	public:
		virtual Ups makeUps() = 0;
		virtual Downs makeDowns() = 0;
};
class SpringClothesFactory : public ClothesFactory
{
	public:
		Ups makeUps()
		{
			return new SpringUps();
		}
		Downs makeDowns()
		{
			return new SpringDowns();
		}
};
class AutumnClothesFactory : public ClothesFactory
{
	public:
		Ups makeUps()
		{
			return new AutumnUps();
		}
		Downs makeDowns()
		{
			return new AutumnDowns();
		}
};

四、优缺点

     1、优点

       a、增加新的具体工厂和产品族很方便,已写好的代码无需修改,满足开闭原则。

        b、分离了具体的类。

        c、产品族具有约束性,有利于产品的一致性。

      2、缺点

         a、增加新的产品修改比较麻烦,需要修改抽象工厂和所有的具体工厂类。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值