设计模式之工厂模式

更新时间:2023-06-19 15:23:07 阅读: 评论:0

设计模式之工厂模式
在软件开发中,面对复杂的系统结构和繁琐的代码实现,我们通常都会采用设计模式来提高软件开发的效率和质量。设计模式是指在某些经典问题上,经过多次实践、总结和抽象出来的一系列通用的解决方案。其中,工厂模式是比较常见的一种设计模式。
一、什么是工厂模式
工厂模式是一种创建型设计模式,它提供了一种创建对象的最佳方式。工厂模式能够在创建对象时把这个过程封装起来,从而使客户端不需要知道具体创建的逻辑。通俗一点说,就是有一个工厂类,根据不同的需求生产不同的产品。工厂模式的应用场景比较广泛,例如 JDK 中的 Calendar 和 NumberFormat 类,还有 Spring 框架中的 BeanFactory 和 ApplicationContext。韩国乒乓球
二、工厂模式的分类
工厂模式一般分为三种:简单工厂模式、工厂方法模式和抽象工厂模式。
1. 简单工厂模式
简单工厂模式又叫静态工厂方法,它是指由一个工厂类负责创建多种类型的对象。客户端只需要提供必要的参数,由工厂类根据参数来生成相应的对象。简单工厂模式的优点是生产出的对象在客户端中有些封装,客户端只需要知道自己需要什么产品即可,而不需要知道产品的具体实现细节。
向往温暖
以汽车生产为例来说明简单工厂模式的实现。我们假设汽车生产线只生产轿车、越野车和卡车三种类型的车辆,我们可以使用简单工厂模式实现这个过程。
首先,定义一个车辆抽象类 Vehicle,包含一个 abstract 方法 run,表示车辆运行的方法。然后,分别定义 Car、SUV 和 Truck 三个子类,它们分别实现了 run 方法。
表达爱意的花
abstract class Vehicle {
    public abstract void run();
}
class Car extends Vehicle {
    public void run() {
        System.out.println("轿车在高速公路上行驶!");
    }
}
class SUV extends Vehicle {
    public void run() {
        System.out.println("越野车在山路上行驶!");
    }
}
class Truck extends Vehicle {
    public void run() {
        System.out.println("卡车在某地工地上拉货!");
流水不腐户枢不蠹是什么意思    }
}
接下来,我们创建一个简单的工厂类 CarFactory,它包含一个静态方法 getVehicle,根据客户端传递的参数来创建不同的类型车辆。文明宣传标语
class VehicleFactory {
    public static Vehicle getVehicle(String type) {
        if ("car".equals(type)) {
            return new Car();
        }
        el if ("suv".equals(type)) {
            return new SUV();
        }
        el if ("truck".equals(type)) {
            return new Truck();
        }
        el {
            throw new RuntimeException("unsupported vehicle type: " + type);
        }
    }
}
钢琴符号
这样,在客户端需要创建车辆时,只需要使用 Vehicle("car") 来获取相应的车辆对象,而无需知道 Car、SUV 和 Truck 车辆类的具体实现。
排球赛新闻稿盆栽兰花养殖方法2. 工厂方法模式
工厂方法模式是比简单工厂模式更为复杂的一种工厂模式,它将具体产品的创建过程交给了子类来完成。与简单工厂模式不同,工厂方法模式有一个抽象的工厂类,它定义了一个抽象工厂方法用于生产产品。在客户端中需要创建产品时,客户端调用抽象工厂方法,由具体的工厂子类来创建相应的产品对象。工厂方法模式的优点是工厂和产品的解耦,使得产品更加具有扩展性和灵活性。

本文发布于:2023-06-19 15:23:07,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/991845.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:工厂   模式   方法   产品
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图