工厂方法模式是一种常用的设计模式,它提供了一种创建对象的接口,但具体的对象创建由子类来决定。在这篇文章中,我们将详细介绍工厂方法模式,并提供相应的源代码示例。
在软件开发中,经常会遇到需要创建多个具有相似行为和属性的对象的情况。通常情况下,我们可以直接在代码中使用new关键字来创建对象。但是,当对象的创建过程较为复杂或者需要根据不同的条件来创建不同的对象时,直接使用new关键字就显得不够灵活和可扩展。
工厂方法模式通过引入工厂类来解决这个问题。工厂类负责创建具体的对象,而客户端只需要通过调用工厂类的方法来获取所需的对象,而无需关心对象的创建过程。这样,客户端与具体对象的创建过程解耦,提高了代码的可维护性和可扩展性。
下面,我们通过一个简单的示例来说明工厂方法模式的使用方法。假设我们正在开发一个简单的图形绘制程序,其中包含圆形和矩形两种图形。我们希望通过工厂方法模式来创建这些图形对象。
首先,我们需要定义一个抽象的图形类Shape,其中包含一个抽象的绘制方法draw:
abstract class Shape {