【玩转23种Java设计模式】创建型模式篇:工厂方法模式

简介: 工厂方法模式,是⼀种创建型设计模式。定义一个用于创建产品的接口,由子类决定生产什么产品。
软件设计模式(Design pattern),又称设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。

汇总目录链接:【玩转23种Java设计模式】学习目录汇总整理

一、简介

  工厂方法模式,是⼀种创建型设计模式。定义一个用于创建产品的接口,由子类决定生产什么产品。
  工厂方法模式是典型的解耦框架,这种设计模式也是 Java 开发中最常见的⼀种模式。

二、实例

实例:手机工厂生产手机。
在这里插入图片描述

1、手机标准接口(Phone)

public interface Phone {
    void call();
}

2、华为手机实现类(HuaWeiPhone)

public class HuaWeiPhone implements Phone {
    @Override
    public void call() {
        System.out.println("huawei phone call");
    }
}

3、小米手机实现类(XiaoMiPhone)

public class XiaoMiPhone implements Phone {
    @Override
    public void call() {
        System.out.println("xiaomi phone call");
    }
}

4、手机工厂接口(PhoneFactory)

public interface PhoneFactory {
    Phone makePhone();
}

5、华为手机工厂实现类(HuaWeiPhoneFactory)

public class HuaWeiPhoneFactory implements PhoneFactory {
    @Override
    public Phone makePhone() {
        return new HuaWeiPhone();
    }
}

6、小米手机工厂实现类(XiaoMiPhoneFactory)

public class XiaoMiPhoneFactory implements PhoneFactory {
    @Override
    public Phone makePhone() {
        return new XiaoMiPhone();
    }
}

7、测试类(Main)

public class Main {
    public static void main(String[] args) {
        HuaWeiPhoneFactory huaWeiPhoneFactory = new HuaWeiPhoneFactory();
        Phone phone = huaWeiPhoneFactory.makePhone();
        phone.call();
    }
}

控制台输出:

huawei phone call

三、总结

1、优点

  • 遵循开闭原则,良好的封装性,降低模块间耦合。
  • 易扩展。新增产品,无需去修改之前类中的代码。

2、缺点

  • 每增加一个新产品,对应要增加产品类和工厂实现类,如果产品较多,不简洁。

3、应用场景

  • 连接数据库。在使用JDBC连接数据库时,数据库从MySQL切换到Oracle,只需切换一下驱动名称。
相关文章
|
5天前
|
设计模式 uml
设计模式-------------工厂模式之工厂方法模式(创建型)
工厂方法模式是一种创建型设计模式,它通过定义一个用于创建对象的接口,让子类决定实例化哪一个类,从而实现类的实例化推迟到子类中进行,提高了系统的灵活性和可扩展性。
设计模式-------------工厂模式之工厂方法模式(创建型)
|
6天前
|
设计模式 uml
设计模式-------------工厂模式之工厂方法模式(创建型)
工厂方法模式是一种创建型设计模式,它通过定义一个用于创建对象的接口,让子类决定实例化哪一个类,从而实现类的实例化推迟到子类中进行,提高了系统的灵活性和可扩展性。
|
1月前
|
设计模式 监控 Java
Java中的并发编程模式与最佳实践
随着多核处理器的普及,充分利用并发和多线程成为提高软件性能的关键。Java语言通过其丰富的并发API提供了强大的支持,使得开发者能够构建高效、可靠的并发应用程序。本文深入探讨了Java并发编程的核心概念、设计模式以及在实际开发中的最佳实践,旨在帮助读者更好地理解和掌握Java并发编程,从而编写出更加高效、稳定的应用程序。
|
1月前
|
设计模式 Java 开发者
Java中的异常处理与断路器模式
Java中的异常处理与断路器模式
|
1月前
|
设计模式 安全 NoSQL
Java面试题:设计一个线程安全的单例模式,并解释其内存占用和垃圾回收机制;使用生产者消费者模式实现一个并发安全的队列;设计一个支持高并发的分布式锁
Java面试题:设计一个线程安全的单例模式,并解释其内存占用和垃圾回收机制;使用生产者消费者模式实现一个并发安全的队列;设计一个支持高并发的分布式锁
40 0
|
1月前
|
存储 设计模式 监控
Java面试题:如何在不牺牲性能的前提下,实现一个线程安全的单例模式?如何在生产者-消费者模式中平衡生产和消费的速度?Java内存模型规定了变量在内存中的存储和线程间的交互规则
Java面试题:如何在不牺牲性能的前提下,实现一个线程安全的单例模式?如何在生产者-消费者模式中平衡生产和消费的速度?Java内存模型规定了变量在内存中的存储和线程间的交互规则
30 0
|
1月前
|
存储 Java 程序员
Java内存模式以及volatile关键字的使用
Java内存模式以及volatile关键字的使用
23 0
|
1月前
|
Java 物联网 数据处理
Java中的软件架构模式与演进趋势
Java中的软件架构模式与演进趋势
|
设计模式 XML JSON
【Java设计模式 设计模式与范式】创建型模式 四:抽象工厂模式
【Java设计模式 设计模式与范式】创建型模式 四:抽象工厂模式
45 0
|
设计模式 Java
【玩转23种Java设计模式】创建型模式篇:抽象工厂模式
抽象工厂模式提供一个创建产品族的接口,其每个子类可以生产一系列相关的产品。
【玩转23种Java设计模式】创建型模式篇:抽象工厂模式