【黑马程序员济南中心】工厂设计模式-抽象工厂模式

【黑马程序员济南中心】工厂设计模式-抽象工厂模式

今天我们讲一讲工厂设计模式的最后一种:抽象工厂模式。这个相当于工厂设计模式的进阶版本,我们可以先去了解它,在慢慢的熟练使用它。

什么是抽象工厂模式?抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。

在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。

我们用一个类图来展示抽象工厂模式:

 

首先要创建一个接口,这个接口就是指的Creator,而一组相关或者相互依赖的对象,就是指的ProductA和ProductB以及它们具体的实现类,我们返回的接口或者抽象类则是指的ProductA和ProductB接口。

我们用代码体现:

工厂类:

public interface Creator {

ProductA createProductA();

 

ProductB createProductB();

}

 

工厂实现类:

public class ConcreteCreator1 implements Creator {

public ProductA createProductA() {

return new ProductA1();

}

 

public ProductB createProductB() {

return new ProductB1();

}

}

 

public class ConcreteCreator2 implements Creator {

public ProductA createProductA() {

return new ProductA2();

}

 

public ProductB createProductB() {

return new ProductB2();

}

}

 

产品类:

interface ProductA {

void methodA();

}

interface ProductB {

void methodB();

}

产品实现类:

class ProductA1 implements ProductA {

public void methodA() {

System.out.println("产品A系列中1型号产品的方法");

}

}

 

class ProductA2 implements ProductA {

public void methodA() {

System.out.println("产品A系列中2型号产品的方法");

}

}

 

class ProductB1 implements ProductB {

public void methodB() {

System.out.println("产品B系列中1型号产品的方法");

}

}

 

class ProductB2 implements ProductB {

public void methodB() {

System.out.println("产品B系列中2型号产品的方法");

}

}

 

以上就是我们展示的代码案例。简单的说:不管是简单工厂,还是工厂方法,都有一个缺陷,那就是整个模式当中只能有一个抽象产品,所以直观的,在工厂方法模式中再添加一个创造抽象产品的方法就是抽象工厂模式了,相应的当然还有添加一个抽象产品,还有一系列具体的该抽象产品的实现。
 

转载于:https://my.oschina.net/u/3825479/blog/1799306

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值