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

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.kler.cn/a/614810.html

相关文章:

  • Linux课程学习一
  • 【Kafka】深入探讨 Kafka 如何保证一致性
  • 【区块链安全 | 第八篇】多签机制及恶意多签
  • keil的代码美化工具AStyle3.1
  • 【vue】聊一聊嵌套路由使用keep-alive缓存的实现
  • 面向服务架构(SOA)及ESB的作用与特点
  • 2023第十四届蓝桥杯大赛软件赛国赛C/C++ 大学 B 组(真题题解)(C++/Java题解)
  • 算法-前缀和与差分
  • FGSM对抗样本生成算法实现(pytorch版)
  • AI助力高效办公:如何利用AI制作PPT提升工作效率
  • 结构化分析方法 数据流图详解
  • 工业控制系统安全:从漏洞到防线,Python如何成为你的护卫者
  • 图论 岛屿问题 ACM 模式 JS
  • 怎么搭建区块链服务私有云平台
  • C++实现布隆过滤器
  • 创意 Python 爱心代码分享
  • Python常用爬虫库介绍
  • vue3+element plus +el-tree-v2实现树形单选
  • presto任务优化参数
  • Uniapp微信开发树形选择组件