Java实现简单工厂模式:让你的代码更加优雅
- 本文目录导读:
- 1、什么是简单工厂模式?
- 2、优点及适用场景
- 3、实现步骤
- 4、Java实现简单工厂模式代码示例
- 5、使用示例
在软件开发中,设计模式是提高代码质量和可维护性的重要方法之一。其中,简单工厂模式是最常见、最基础也最易理解的设计模式之一。本文将介绍使用Java实现简单工厂模式。
什么是简单工厂模式?
简单工厂(Simple Factory)又称为静态工厂方法(Static Factory Method),它属于创建型设计模式。通俗来说,就是通过一个类来创建不同类对象的实例化过程。
举个例子:假如有多个形状需要被画出来,比如圆形、正方形、三角形等等。如果每次都使用new关键字去创建这些对象,则会使得代码非常冗长而且难以管理。此时我们可以采用“专门制造汽车”的方式——即定义一个ShapeFactory类,在该类中封装了所有与对象创建相关的逻辑,并根据传入参数类型返回特定类型对象。
优点及适用场景
- 降低耦合度
- 提高扩展性
- 隐藏具体产品
- 对客户端隐藏具体产品构造细节
适用场景:
1. 工厂类负责创建的对象比较少;
2. 客户端只知道传入工厂类的参数,对于如何创建对象不关心。
实现步骤
1. 创建抽象接口或者抽象类
2. 创建具体产品类并继承自抽象接口或者抽象类
3. 创建工厂方法来生成具体产品的对象
Java实现简单工厂模式代码示例
下面是一个使用Java语言实现简单工厂模式的示例代码:
```
// 抽象接口:形状 Shape
public interface Shape {
void draw(); // 画图形
}
// 具体产品类:圆形 Circle
public class Circle implements Shape {
@Override
public void draw() {
System.out.println("画了一个圆形");
}
// 具体产品类:正方形 Square
public class Square implements Shape {
System.out.println("画了一个正方形");
// 工厂方法:ShapeFactory
public class ShapeFactory {
// 根据传入参数类型返回特定类型对象。
public static Shape getShape(String shapeType){
if(shapeType == null){
return null;
}
if(shapeType.equalsIgnoreCase("CIRCLE")){
return new Circle();
} else if(shapeType.equalsIgnoreCase("SQUARE")){
return new Square();
} else{
}
}
上述代码中,我们定义了三份文件分别为Shape、Circle和Square。其中,Shape是抽象接口,Circle和Square是具体产品类。另外,我们还定义了一家工厂方法ShapeFactory,用于根据传入参数类型返回特定类型对象。
使用示例
下面是一个使用Java实现简单工厂模式的示例代码:
public class SimpleFactoryDemo {
public static void main(String[] args) {
Shape circle = ShapeFactory.getShape("CIRCLE");
circle.draw();
Shape square = ShapeFactory.getShape("SQUARE");
square.draw();
在上述代码中,我们通过调用getShape()方法来获取圆形和正方形对象,并分别调用它们的draw()方法进行绘图操作。
简单工厂模式在软件开发中应用广泛且易理解。本文介绍了Java语言实现简单工厂模式的基本流程及其优点和适用场景,并提供了相应的示例代码。希望读者能够掌握该设计模式并将其运用到自己的项目中去,使得代码更加优雅、易于管理以及可扩展性更强。