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

2023-05-03 14:36:27 浏览数 (1)

简介

简单工厂模式(Simple Factory Pattern)属于创建型模式,是一种比较简单的工厂模式。简单工厂模式通过一个工厂类来创建不同类型的对象,而客户端只需要知道所需对象的类型即可,无需知道具体的创建过程。简单工厂模式将对象的创建过程与客户端分离,从而提高了系统的灵活性和扩展性。

设计思路

简单工厂模式包含三个角色:工厂类、抽象产品类和具体产品类。其中,工厂类负责创建不同类型的产品对象,抽象产品类定义了产品对象的公共接口,具体产品类实现了抽象产品类的接口,完成具体的业务逻辑。

下面以一个简单的示例来说明简单工厂模式的设计思路。

示例

假设我们要设计一个图形计算器,可以根据用户输入的指令来计算不同形状的图形的周长和面积。支持的图形包括圆形、正方形和矩形。

首先,我们定义一个抽象图形类 Shape,其中包含两个抽象方法:计算周长和计算面积。

代码语言:javascript复制
public abstract class Shape {
    public abstract double calculatePerimeter();
    public abstract double calculateArea();
}

然后,定义三个具体图形类 Circle、Square 和 Rectangle,它们分别实现了抽象图形类 Shape 的两个抽象方法。

代码语言:javascript复制
public class Circle extends Shape {
    private double radius;

    public Circle(double radius) {
        this.radius = radius;
    }

    public double calculatePerimeter() {
        return 2 * Math.PI * radius;
    }

    public double calculateArea() {
        return Math.PI * radius * radius;
    }
}

public class Square extends Shape {
    private double side;

    public Square(double side) {
        this.side = side;
    }

    public double calculatePerimeter() {
        return 4 * side;
    }

    public double calculateArea() {
        return side * side;
    }
}

public class Rectangle extends Shape {
    private double width;
    private double height;

    public Rectangle(double width, double height) {
        this.width = width;
        this.height = height;
    }

    public double calculatePerimeter() {
        return 2 * (width   height);
    }

    public double calculateArea() {
        return width * height;
    }
}

0 人点赞