首页 > 学院 > 开发设计 > 正文

java设计模式之抽象工厂模式

2019-11-14 10:55:56
字体:
来源:转载
供稿:网友

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

抽象工厂允许客户使用抽象的接口来创建一组相关的产品,而不需要知道实际产出的具体产品是什么。

烤鱼之抽象工厂模式类图: 烤鱼之抽象工厂模式类图 类A,B实现了接口TiaoLiao,分别是调料A,调料B。FactoryA,FactoryB是AbstractFactory的子类,通过create方法来实例化TiaoLiao。

TiaoLiao接口代码实现:

public interface TiaoLiao {}

A类代码实现:

public class A implements TiaoLiao{ public A(){ System.out.PRintln("调料A"); }}

B类代码实现:

public class B implements TiaoLiao{ public B(){ System.out.println("调料B"); }}

AbstractFactory类代码实现:

public abstract class AbstractFactory { public abstract TiaoLiao create();}

FactoryA类代码实现:

public class FactoryA extends AbstractFactory{ @Override public TiaoLiao create() { // TODO Auto-generated method stub return new A(); }}

FactoryB类代码实现:

public class FactoryB extends AbstractFactory{ @Override public TiaoLiao create() { // TODO Auto-generated method stub return new B(); }}

KaoYu类代码实现:

public class KaoYu { AbstractFactory abstractFactory; public KaoYu(AbstractFactory abstractFactory){ this.abstractFactory = abstractFactory; } public TiaoLiao orderFish(){ return abstractFactory.create(); }}

测试类AbstractFactoryTest代码实现:

public class AbstractFactoryTest { public static void main(String[] args){ AbstractFactory abstractFactory = new FactoryA(); KaoYu kaoYu = new KaoYu(abstractFactory); kaoYu.orderFish(); AbstractFactory abstractFactory2 = new FactoryB(); KaoYu kaoYu2 = new KaoYu(abstractFactory2); kaoYu2.orderFish(); }}

运行结果:

调料A调料B
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表