当前位置: 首页 > news >正文

JAVA学习*工厂模式

概念:

工厂模式是一种创建对象的设计模式,它将对象的创建和使用分离,提高了代码的可维护性和可扩展性。也就是创建一个专门负责创建对象的工厂类,将对象的创建过程进行封装。

案例:

能有工厂才生产产品A和产品B

简单工厂

代码展示:

//抽象产品接口
public interface Product {
    void use();
}
//具体产品类
public class ProductA implements Product{
    @Override
    public void use() {
        System.out.println("产品A的使用");
    }
}
//具体产品类
public class ProductB implements Product{
    @Override
    public void use() {
        System.out.println("产品B的使用");
    }
}
//定义工厂类,来生产产品
public class Factory {
    public static Product createProduct(String type) {
        if("A".equals(type)) {
            return new ProductA();
        }else if("B".equals(type)) {
            return new ProductB();
        }else return null;
    }
}
public class Test {
    public static void main(String[] args) {
        Product a = Factory.createProduct("A");
        Product b = Factory.createProduct("B");
        a.use();
        b.use();
    }
}

代码解释:

1、定义了一个工厂类来负责创建产品对象。
2、但当产品类数量过多时,工厂类会过于复杂。

工厂方法模式

代码展示:

//抽象产品接口
public interface Product {
    void use();
}
//具体产品类
public class ProductA implements Product{
    @Override
    public void use() {
        System.out.println("产品A的使用");
    }
}
//具体产品类
public class ProductB implements Product{
    @Override
    public void use() {
        System.out.println("产品B的使用");
    }
}
//定义抽象工厂接口
public interface Factory {
    Product creatProduct();
}
//定义具体工厂,生产产品A
public class ProductAFactory implements Factory{
    @Override
    public Product creatProduct() {
        return new ProductA();
    }
}
//定义具体工厂,生产产品B
public class ProductBFactory implements Factory{
    @Override
    public Product creatProduct() {
        return new ProductB();
    }
}
//测试类
public class Test {
    public static void main(String[] args) {
        Factory factoryA = new ProductAFactory();
        Factory factoryB = new ProductBFactory();
        Product productA = factoryA.creatProduct();
        Product productB = factoryB.creatProduct();
        productA.use();
        productB.use();
    }
}

代码解释:

此代码将工厂抽象化,Factory定义了创建产品的抽象方法。ProductAFactory ProductBFactory定义每个抽象工厂分别专门生产某个产品。通过creatProduct() 方法来创建对象。

http://www.dtcms.com/a/98523.html

相关文章:

  • Python容器详解:从字符串到字典的完整指南
  • CPT204 Advanced Obejct-Oriented Programming 高级面向对象编程 Pt.4 泛型
  • 4.训练篇2-毕设篇
  • Share01-WinCC文件越用越大?
  • 【学习笔记】文件上传漏洞--js验证、mime验证、.user.ini、短标签、过滤、文件头
  • 大数据Spark(五十五):Spark框架及特点
  • Leetcode 两数相除
  • 海量数据处理
  • 下载和初步上手Vue3路由
  • NOIP2007提高组.矩阵取数游戏
  • 思维链技术(Chain-of-Thought, CoT)
  • 双卡 RTX 5090 深度体验:AI 推理框架选择与性能限制实测
  • HCIP(RSTP+MSTP)
  • 【STL】list
  • React程序打包与部署
  • JAVASE-day14
  • 蓝桥杯备考:多米诺骨牌
  • 【Linux】GDB调试指南
  • 基于YALMIP+CPLEX的带储能微电网调度问题最优求解matlab仿真
  • 提示词工程(Prompt Engineering):释放AI潜能的“语言编程”
  • #CX# UVM中的virtual sequence 和 virtual sequencer 的用途
  • 【Kafka】从理论到实践的深度解析
  • pytorch中dataloader自定义数据集
  • Java/Scala是什么
  • 解决由于中文路径无法安装软件的问题--例如postersql
  • 数据化管理(一)---什么是数据化管理
  • 模拟集成电路设计与仿真 : Memory
  • 北斗导航 | 中国北斗卫星导航系统的发展历程——“三步走”战略:背景,信号频点,调制方式,短报文,等
  • Linux交叉编译第三方库,C语言调用第三方库
  • 资产收益数据处理与分析