抽象工厂模式

抽象工厂模式:

1.模式动机:
在工厂方法模式中具体工厂负责生产具体的产品,每一个具体工厂对应一种具体产品,工厂方法也具有唯一性,
但有时候我们需要一个工厂可以提供多个产品对象,而不是单一的产品对象,这时就要用抽象工厂模式。

2.为了能清晰的理解抽象工厂模式,需要先引进两个概念:
a.产品等级结构:即产品的继承结构,
如抽象类是电视机,其子类有海尔TV,海信TV,那抽象电视机与具体品牌的电视机之间就构成了一个产品等级结构。
b.产品族:在抽象工厂模式中,产品族就是由同一个工厂生产的,位于不同产品等级结构的一组产品,如海尔电器工厂生产的海尔TV,海尔电冰箱。

3.抽象工厂模式定义:提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类

a.抽象工厂(AbstractFactory)
抽象工厂用于声明生产抽象产品的方法,在一个抽象工厂中可以定义一组方法,每一个方法对应一个产品等级结构

b.具体工厂(ConcreteFactory)
具体工厂实现了抽象 工厂声明的生产抽象产品的方法,生成一组具体产品,这些产品构成了一个产品族,每一个产品都位于某个产品等级结构中

c.抽象产品(AbstractProduct)
抽象产品为每种产品声明接口,在抽象产品中定义了产品的抽象业务方法
d.具体产品(ConcreteProduct)
具体产品定义具体工厂生产的具体产品对象,实现抽象产品接口中定义的业务方法

===================分界线=====================
4.具体代码实现:
第一步: 写一个抽象工厂类 :电器工厂类,用于声明生成抽象产品的方法;
package AbstractFactory;

import AbstractProduct.AirConditioner;
import AbstractProduct.Television;

public interface EFactory {
public Television produceTelevision();
public AirConditioner produceAirConditioner();

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值