java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Java抽象工厂模式

Java设计模式之抽象工厂模式详解

作者:晓之木初

这篇文章主要介绍了Java设计模式之抽象工厂模式详解,抽象工厂是一种为访问类提供一个创建一组相关或相互依赖对象的接口,且访问类无须指定所要产品的具体类就能得到同族的、不同等级的产品的模式结构,需要的朋友可以参考下

1. 抽象工厂模式

1.1 抽象工厂模式的定义

一种为访问类提供一个创建一组相关或相互依赖对象的接口,且访问类无须指定所要产品的具体类就能得到同族的、不同等级的产品的模式结构。

1.2 定义解读

提供一个创建一组相关或相互依赖对象的接口

不同等级的产品

同族的产品

在这里插入图片描述

总结起来

2. UML图

抽象工厂模式的UML图如下:

在这里插入图片描述

3. 代码示例

创建两个抽象产品类

public interface TV {
    void play();
}
public interface AirConditioner {
    void heat();
}

创建具体产品类

public class HaierTV implements TV{
    @Override
    public void play() {
        System.out.println("海尔电视机,销量全国领先");
    }
}
public class TCLTV implements TV{
    @Override
    public void play() {
        System.out.println("TCL牌电视机,家家都在看的电视机");
    }
}
public class HaierAirConditioner implements AirConditioner{
    @Override
    public void heat() {
        System.out.println("海尔牌空调,制热效果好,省电又省心~");
    }
}
public class TCLAirConditioner implements AirConditioner {
    @Override
    public void heat() {
        System.out.println("TCL牌空调,制热效果杠杠的");
    }
}

创建抽象工厂类

public interface AbstractFactory {
    TV getTV();
    AirConditioner getAirConditioner();
}

创建具体工厂类

public class HaierFactory implements AbstractFactory{
    @Override
    public TV getTV() {
        return new HaierTV();
    }
    @Override
    public AirConditioner getAirConditioner() {
        return new HaierAirConditioner();
    }
}
public class TCLFactory implements AbstractFactory{
    @Override
    public TV getTV() {
        return new TCLTV();
    }
    @Override
    public AirConditioner getAirConditioner() {
        return new TCLAirConditioner();
    }
}

4. 总结

4.1 抽象工厂模式的总结

适用场景

开闭原则的倾斜性

4.2 工厂模式的总结

简单工厂模式

工厂方法模式

抽象工厂模式

到此这篇关于Java设计模式之抽象工厂模式详解的文章就介绍到这了,更多相关Java抽象工厂模式内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文