抽象工厂模式-《Head First设计模式》

本文介绍了抽象工厂模式,一种创建型设计模式,它提供了一个接口,用于创建一系列相关或相互依赖的对象,而无需指定它们具体的类。同时对比了工厂方法与抽象工厂的不同之处。

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

抽象工厂模式提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。

抽象工厂允许客户使用抽象的接口来创建一组相关的产品,而不需要知道或关心实际产出的具体产品是什么,这样,客户就从具体的产品被解耦了。类图如下
[img]http://dl.iteye.com/upload/attachment/492407/5629df4e-4e23-32a4-9726-a73ba96a188e.jpg[/img]

[img]http://dl.iteye.com/upload/attachment/492411/6bbf81b0-d4df-30b8-8754-b1e614ddaaaf.jpg[/img]

工厂方法和抽象工厂的区别:
工厂方法使用的是继承,意味着利用工厂方法创建对象,需要扩展一个类,并覆盖它的工厂方法。这个工厂方法就是用来创建对象的。该模式就是通过子类来创建对象,用这种做法,客户只需要知道他们所使用的抽象类型就可以了,而由子类来负责决定具体类型,即只负责客户从具体类型中解耦。
抽象工厂通过对象组合来实现。它提供一个用来创建一个产品家族的抽象类型,这个类型的子类定义了产品被产生的方法。要想使用这个工厂,必须先实例化它,然后将它传入一些针对抽象类型所写的代码中。它经常使用工厂方法来实现具体工厂。

工厂方法使用继承,把对象的创建委托给子类,子类实现工厂方法来创建对象。
抽象工厂使用对象组合,对象的创建被是现在工厂接口所暴露出来的方法中。
工厂方法允许类将实例化延迟到子类。
抽象工厂创建相关的对象家族,而不需要依赖它们的具体类
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值