说一下java工厂模式的好处
时间: 2023-11-21 09:58:55 浏览: 33
Java工厂模式是一种创建型设计模式,它提供了一种创建对象的最佳方式。Java工厂模式的好处如下:
1. 降低了代码重复率:Java工厂模式可以避免在代码中重复创建相同的对象,从而降低了代码的重复率。
2. 提高了代码的可维护性:Java工厂模式将对象的创建过程封装在一个工厂类中,使得代码更加模块化,易于维护和修改。
3. 降低了耦合度:Java工厂模式通过工厂类来创建对象,客户端代码只需要知道工厂类的接口,而不需要知道具体的实现类,从而降低了客户端代码与具体实现类之间的耦合度。
4. 提高了代码的可扩展性:Java工厂模式可以通过添加新的工厂类来扩展系统,而不需要修改现有的代码。
下面是一个简单的Java工厂模式的例子:
```java
// 定义一个接口
interface Shape {
void draw();
}
// 定义实现接口的具体类
class Circle implements Shape {
@Override
public void draw() {
System.out.println("Circle.draw()");
}
}
class Square implements Shape {
@Override
public void draw() {
System.out.println("Square.draw()"); }
}
class Rectangle implements Shape {
@Override
public void draw() {
System.out.println("Rectangle.draw()");
}
}
// 定义一个工厂类
class ShapeFactory {
public 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 if (shapeType.equalsIgnoreCase("RECTANGLE")) {
return new Rectangle();
}
return null;
}
}
// 使用工厂类创建对象
public class FactoryPatternDemo {
public static void main(String[] args) {
ShapeFactory shapeFactory = new ShapeFactory();
Shape shape1 = shapeFactory.getShape("CIRCLE");
shape1.draw();
Shape shape2 = shapeFactory.getShape("SQUARE");
shape2.draw();
Shape shape3 = shapeFactory.getShape("RECTANGLE");
shape3.draw();
}
}
```