温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎么用Java代码实现抽象工厂模式

发布时间:2022-04-07 10:02:40 来源:亿速云 阅读:127 作者:iii 栏目:开发技术

这篇文章主要介绍“怎么用Java代码实现抽象工厂模式”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么用Java代码实现抽象工厂模式”文章能帮助大家解决问题。

解决工厂方法模式的问题:一个具体工厂只能创建一类产品,而实际过程中一个工厂往往需要生成很多的产品,这种可以采用抽象工厂模式。

1. 抽象工厂模式解决

定义:提供一个创建一系列相关或者互相依赖对象的接口,无需指定他们的具体的类,具体的工厂负责实现具体的产品的实例。使一个工厂可以产生多个产品。

2. 抽象工厂类图UML

怎么用Java代码实现抽象工厂模式

3. 抽象工厂模式的主要角色

抽象工厂(AbstractFactory):提供了创建产品的接口,包含了多个创建产品的接口方法,可以创建多个不同等级的产品

具体工厂(ConcreteFactory):实现了抽象工厂定义的方法,完成具体产品的创建

抽象产品(Product):定义了产品的规范,描述产品的主要特征和性能

具体产品(ConcreteProduct):实现了抽象产品的定义的方法,有具体工厂来创建产品,具体工厂和具体产品一对多关系

4. 代码实现

抽象工厂方法实现:

public interface AbstractFactory {
    public Product1 createProduct1();
    public Product2 createProduct2();
}

public class ConcreteFactory1 implements AbstractFactory {
    @Override
    public Product1 createProduct1() {
        System.out.println("具体工厂1产生具体产品1...");
        return new ConcreteProduct1();
    }

    @Override
    public Product2 createProduct2() {
        System.out.println("具体工厂1产生具体产品2...");
        return new ConcreteProduct2();
    }
}

使用步骤:

  • 创建抽象产品类,定义产品的公共方法

  • 创建具体产品类(实现抽象产品接口),定义生成的具体产品

  • 创建抽象工厂类,定义具体工厂的公共接口,一个工厂类可以创建不同等级的产品

  • 创建具体工厂类,定义创建对应具体产品实例的方法

  • 调用方调用具体的工厂类的方法,从而创建不同具体产品的实例

5. 抽象工厂方法再探究

解决问题:每个工厂只能创建一类产品,即是工厂方法的缺点

6. 优缺点

优点:

  • 可以在工厂类内部对产品中相关联的多级产品共同管理,而不必专门引入新的类来管理

  • 抽象工厂增加了程序的可扩展性,当新增一个新的产品族时,不需要修改源代码,满足开闭原则

缺点:

  • 当产品族新增一个产品类型时,所有的工厂类都需要进行修改,增加了系统的抽象性和理解难度

7. 适用示例

王者荣耀中提供了很多的英雄,英雄分为射手、辅助、打野、坦克等职业,不同的职业对应的技能,属性不同。声明坦克、法师、刺客等多个工厂子类,每个工厂可以生产相应技能的应用。

关于“怎么用Java代码实现抽象工厂模式”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注亿速云行业资讯频道,小编每天都会为大家更新不同的知识点。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI