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