java工厂模式 uml_设计模式----抽象工厂模式UML和实现代码

一、什么是抽象工厂模式?

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

当每个抽象产品都有多于一个的具体子类的时候,工厂角色怎么知道实例化哪一个子类呢?比如每个抽象产品角色都有两个具体产品。抽象工厂模式提供两个具体工厂角色,分别对应于这两个具体产品角色,每一个具体工厂角色只负责某一个产品角色的实例化。每一个具体工厂类只负责创建抽象产品的某一个具体子类的实例。

每一个模式都是针对一定问题的解决方案,工厂方法模式针对的是一个产品等级结构;而抽象工厂模式针对的是多个产品等级结构。

二、抽象工厂模式UML图

1855484976575a6d847cfef8c0b0ade5.png

三、抽象工厂模式JAVA版

AbstractFactory.java

package com.amosli.dp.build.abstractfactory;

public abstract class AbstractFactory {

public abstract AbstractProductA createProductA();

public abstract AbstractProductB createProductB();

}

AbstractProductA.java

package com.amosli.dp.build.abstractfactory;

public abstract class AbstractProductA {

public abstract void show();

}

AbstractProductB.java

package com.amosli.dp.build.abstractfactory;

public abstract class AbstractProductB {

public abstract void display();

}

Factory1.java

package com.amosli.dp.build.abstractfactory;

public class Factory1 extends AbstractFactory{

@Override

public AbstractProductA createProductA() {

return new ProductA1();

}

@Override

public AbstractProductB createProductB() {

return new ProductB1();

}

}

Factory2.java 与Factory1.java类似 这里就不再列出来了。

ProductA1.java

package com.amosli.dp.build.abstractfactory;

public class ProductA1 extends AbstractProductA{

@Override

public void show() {

System.out.println("a1");

}

}

ProductA2.java ProductB1.java ProductB2.java与ProductA1.java类似

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值