知乎上对于工厂模式的简易解释

本文探讨了工厂模式在软件设计中的应用,特别是在多个类实现同一接口场景下如何通过工厂模式简化对象创建过程,避免客户端与具体实现类之间的耦合。

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

工厂模式并不仅仅是用来new出一个类的对象的。简单工厂确实如题主的描述所说,是一个工厂对应一个类的关系。
在这里,可以举出一些复杂的例子,与题主的描述不同。假设有代码包A和代码包B,代码包B是代码包A的调用者,A向B暴露接口InterfaceA。在A的内部结构中,实现了InterfaceA的有ClassA1,ClassA2,ClassA3,……ClassA100。但是B并不关心这些,因为对于B来说,A的功能只有一个,就是InterfaceA。这个时候,B想要使用一个InterfaceA的实现,想要new一个出来,但又不想与代码包A中的复杂的构造逻辑耦合,怎么办?只能向代码包A中传递参数,交给代码包A自己选择到底是那个ClassA1还是A100被new出来。而这个对构造过程进行选择的逻辑,就是工厂。

作者:兔子先生
链接:https://www.zhihu.com/question/24843188/answer/29171607
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值