工厂模式
  SeIm8vqntTIe 2023年11月13日 22 0

工厂模式是一种创建对象的设计模式,它提供了一种创建对象的接口,但是具体的对象实例化的逻辑由工厂类来决定。

工厂模式的主要目的是将对象的创建与使用分离,使代码更加灵活、可扩展和可维护。

在工厂模式中,通常包含以下角色:

  1. 抽象产品(Abstract Product):定义了产品的通用接口或抽象类。
  2. 具体产品(Concrete Product):实现了抽象产品接口的具体类,也就是需要被创建的实际对象。
  3. 抽象工厂(Abstract Factory):定义了创建产品的接口方法。
  4. 具体工厂(Concrete Factory):实现了抽象工厂接口方法,负责实际创建具体产品对象。

下面是一个简单的示例代码:

// 抽象产品
interface Shape {
    void draw();
}

// 具体产品
class Circle implements Shape {
    @Override
    public void draw() {
        System.out.println("绘制圆形");
    }
}

class Rectangle implements Shape {
    @Override
    public void draw() {
        System.out.println("绘制矩形");
    }
}

// 抽象工厂
interface ShapeFactory {
    Shape createShape();
}

// 具体工厂
class CircleFactory implements ShapeFactory {
    @Override
    public Shape createShape() {
        return new Circle();
    }
}

class RectangleFactory implements ShapeFactory {
    @Override
    public Shape createShape() {
        return new Rectangle();
    }
}

// 客户端代码
public class Main {
    public static void main(String[] args) {
        // 创建圆形
        ShapeFactory circleFactory = new CircleFactory();
        Shape circle = circleFactory.createShape();
        circle.draw();

        // 创建矩形
        ShapeFactory rectangleFactory = new RectangleFactory();
        Shape rectangle = rectangleFactory.createShape();
        rectangle.draw();
    }
}

在上述示例中,我们定义了抽象产品 Shape,具体产品 Circle 和 Rectangle 实现了该接口。然后,我们定义了抽象工厂 ShapeFactory,具体工厂 CircleFactory 和 RectangleFactory 分别实现了抽象工厂接口。最后,在客户端代码中,我们通过具体工厂来创建具体产品。

工厂模式通过引入抽象工厂和具体工厂,将对象的创建和使用解耦,使得系统更加灵活、可扩展和可维护。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月13日 0

暂无评论

推荐阅读
  anLrwkgbyYZS   2023年12月30日   28   0   0 i++iosi++ioscici
  anLrwkgbyYZS   2023年12月30日   33   0   0 ideciciMaxideMax
SeIm8vqntTIe
作者其他文章 更多

2023-11-13