工厂模式详解与应用

在软件开发过程中,对象的创建是一个基础且频繁的操作。然而,直接在代码中使用 new 关键字创建对象,会使代码的耦合度增加,不利于代码的维护与扩展。工厂模式作为一种创建型设计模式,巧妙地解决了这一问题。它将对象的创建和使用分离,使得代码结构更加清晰,可维护性和可扩展性大幅提升。本文将深入探讨工厂模式的概念、类型及应用场景。

一、工厂模式的基本概念

工厂模式提供了一种创建对象的方式,将对象的创建逻辑封装在一个工厂类中,而不是在客户端直接实例化对象。这样,当对象的创建逻辑发生变化时,只需修改工厂类,而无需修改所有使用该对象的客户端代码。

例如,假设我们正在开发一个图形绘制程序,需要绘制圆形、矩形等图形。如果不使用工厂模式,客户端代码可能如下:

// 圆形类
class Circle {
    public void draw() {
        System.out.println("绘制圆形");
    }
}

// 矩形类
class Rectangle {
    public void draw() {
        System.out.println("绘制矩形");
    }
}

// 客户端代码
public class ClientWithoutFactory {
    public static void main(String[] args) {
        Circle circle = new Circle();
        circle.draw();

        Rectangle rectangle = new Rectangle();
        rectangle.draw();
    }
}

在上述代码中,客户端直接负责创建 Circle 和 Rectangle 对象。若后续图形的创建逻辑变得复杂,或者需要添加新的图形类型,客户端代码将不得不进行大量修改。

而使用工厂模式后,对象的创建将由工厂类负责,客户端只需向工厂请求所需的对象,代码结构更加清晰,易于维护。

二、工厂模式的类型

2.1 简单工厂模式

简单工厂模式虽然不属于 GOF(Gang of Four,设计模式四人组)定义的 23 种设计模式之一,但它是工厂模式的基础。简单工厂模式有一个工厂类,负责创建对象。以下是简单工厂模式的实现示例:

// 图形抽象类
abstract class Shape {
    public 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值