简单工厂模式(设计模式)

简单工厂模式

1.描述

简单工厂模式是一种设计模式,属于创建型模式之一。在简单工厂模式中,有一个工厂类负责根据客户端的需求创建相应的产品类实例。客户端只需要向工厂类传递相应的参数,工厂类根据参数的不同来实例化不同的产品类,从而隐藏了对象的创建细节,让客户端更加方便地使用产品类。 简单工厂模式包括三个主要角色:

1. 工厂类(Factory Class):负责根据客户端的需求创建产品类的实例。

2. 产品类(Product Class):工厂类创建的具体产品类,实现了统一的接口或基类。

3. 客户端(Client):通过工厂类来获取所需的产品实例,而不直接与产品类进行交互。 简单工厂模式的优点是将对象的创建和使用分离,客户端不需要关心具体的产品类如何创建,只需要与工厂类交互即可。缺点是当需要添加新的产品类时,需要修改工厂类的代码,违反了开闭原则。

2.代码实例

接口 Vehicle 交通工具

package SimpleFactory;

/**
 * @author ZhenFrank
 * @date 2024-02-29 20:59:20
 * 交通工具
 */
public interface Vehicle {
    /**
     * 作用
     */
    public void action();
}

具体产品 自行车

package SimpleFactory;

public class Bike implements Vehicle {
    @Override
    public void action() {
        System.out.println("骑着自行车.......");
    }
}

具体产品 小轿车

package SimpleFactory;

public class Car implements Vehicle {
    @Override
    public void action() {
        System.out.println("开车小轿车.......");
    }
}

工厂类

package SimpleFactory;

public class VehicleFactory {
    public VehicleFactory() {
        System.out.println("交通工具实例化");
    }

    public static Vehicle createVehicle(String type) {
        Vehicle vehicle = null;
        if (type == "car") {
            vehicle = new Car();
        } else if (type == "bike") {
            vehicle = new Bike();
        }
        return vehicle;
    }
}

测试类

package SimpleFactory;

public class Main {
    public static void main(String[] args) {

        // 直接创建对象
        Car car1 = new Car();
        car1.action();
        Bike bike1 = new Bike();
        bike1.action();


        // 通过工厂创建对象
        Vehicle car2 = VehicleFactory.createVehicle("car");
        car2.action();
        Vehicle bike = VehicleFactory.createVehicle("bike");
        bike.action();
    }
}

3.简单工厂模式学习总结

总的来说,简单工厂模式是一种简单易懂的设计模式,适用于产品种类较少且产品创建逻辑不会频繁变化的情况。通过工厂类统一管理产品的创建过程,可以提高代码的灵活性和可维护性。

  • 8
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值