(面试)关于简单工厂、工厂、抽象工厂模式学习心得

本文介绍了工厂模式设计的核心,通过对比简单工厂、工厂和抽象工厂模式,揭示了它们之间的区别和适用场景。简单工厂模式易导致扩展困难,工厂模式实现了产品与生产的解耦,而抽象工厂则适用于多个产品族的创建。文章以代码示例说明,并指出在C++中如何实现抽象产品和工厂。

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

前言

所谓简单工厂,工厂,抽象工厂。当我一开始看到并学习这个这三个概念的时候就感觉这三个感念很相似,有点混乱,事实证明,确实让我变得很混乱。即使当初学的时候勉强看懂,但是事后便抛诸脑后,统统忘记到九霄云外了。

因此当我回过头从新理解概念时,总结了以下心得,加深理解,并且做一个备忘录。

工厂类模式设计的核心是:让“生产”和“产品”解耦。

简单工厂

所谓的简单工厂,我的理解是不用管是什么产品,我们将所有产品的生产线一股脑的都放在一个工厂里,这样工厂便可以根据用户的要求来生产各种产品。

代码如下:

int prodNo;
        public SimpleFactory(int prodNo) //构造工厂时告知工厂产品标识
        {
            this.prodNo = prodNo;
        }
 
        public IProduct GetProduct()
        {
            switch (prodNo) //根据产品标识生产产品
            {
                default:
                    return new ProductA();
                case 1:
                    return new ProductA();
                case 2:
                    return new ProductB();
            }
 
         }
 
 
    }
 
    //产品A
    class ProductA: IProduct 
    {
        //产品属性
        //......
    }
 
    //产品B
    class ProductB : IProduct
    {
        //产品属性
        //......
    }
    //产品接口
    interface IP
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值