Java实现抽象工厂模式

本文介绍了抽象工厂模式的概念,通过一个宝马车系列的例子详细阐述了如何在Java中实现抽象工厂模式,包括创建系列车类、Logo车标类以及工厂接口和子类。通过代码实现展示了如何创建不同系列的车辆和车标,并提供了测试案例。同时提到了Mybatis库中的SqlSession创建,作为抽象工厂模式的一个实际应用示例。
摘要由CSDN通过智能技术生成

什么是抽象工厂模式

定义:抽象工厂模式提供一个创建一系列相关或者相互依赖对象的接口。

对比 简单工厂、工厂方法、抽象工厂

模式 优点 缺点
简单工厂 将创建对象的逻辑封装在一个静态方法中,外部人员不需要关注内部实现逻辑 创建对象的逻辑存在一个静态方法中不方便扩展、不能被继承、违背开闭原则
工厂方法 通过提供多个工厂类来创建不同对象,解决了简单工厂模式中职责过重问题,方便扩展、可以被继承、符合开闭原则 对象太多的时候就会创建很多工厂类
抽象工厂 通过提供多个工厂类来创建同一产品族对象,方便扩展、可以被继承、符合开闭原则,并且减少了工厂类数量 实现起来比较复杂,不如简单工厂模式使用简单,产品族需要划分

下面通过一个例子来实现抽象工厂模式。

需求描述

宝马品牌车有宝马X1、X3、X5等系列,每个系列车又配有各自的系列车标X1、X3、X5(车标只能由自己工厂创建),这三个系列车和车标分别由三个工厂创建,下面通过抽象工厂模式来实现该例子。

UML图
在这里插入图片描述IBMWFactory接口定义了createCar(生产车)和createLogo(生产车标)方法,X1Factory、X3Factory、X5Factory造车工厂实现该接口,同时提供生产车型和车标的方法。

X1Car、X3Car、X5Car都实现实体BMWCar接口,并实现run方法。

代码实现

创建系列车类

创建IBMWCar接口,并定义run方法。

public interface IBMWCar {
   
    void run();
}

创建宝马X1车类,并实现IBMWCar接口,实现run方法。

public class X1Car implements IBMWCar {
   
    @Override
    public void run() {
   
        System.out.println("X1Car run");
    }
}

创建宝马X3车类,并实现IBMWCar接口,实现run方法。

public class X3Car implements IBMWCar {
   
    @Override
    public void run() {
   
        System.out.println("X3Car run");
    }
}

创建宝马X5类,并实现IBMWCar接口,实现run方法。

public class X5Car implements IBMWCar {
   
    @Override
    public void run() {
   
        System.out.println("X5Car run");
    }
}
创建Logo车标类

创建ILogo接口,并定义create方法。

public interface ILogo {
   
    void 
  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ruiurrui

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值