创建型模式-简单工厂(非23种之内)
简单工厂模式是一种创建型设计模式,它提供了一个创建对象的接口,但允许子类决定实例化哪一个类。这种模式不被视为GOF的23种经典设计模式之一,但它在实际编程中仍然广泛应用。 在简单工厂模式中,我们定义一个工厂类,这个类负责创建对象。工厂类通常包含一个或多个静态方法,这些方法根据传入的参数或条件来返回不同的对象实例。用户无需了解如何创建这些对象,只需要知道调用哪个工厂方法即可,降低了代码之间的耦合度。 下面是一个简单的示例: ```java // 产品接口 public interface Product { void use(); } // 具体产品类1 public class ProductA implements Product { @Override public void use() { System.out.println("Using Product A"); } } // 具体产品类2 public class ProductB implements Product { @Override public void use() { System.out.println("Using Product B"); } } // 工厂类 public class SimpleFactory { // 根据传入类型创建产品 public static Product createProduct(String type) { if ("typeA".equals(type)) { return new ProductA(); } else if ("typeB".equals(type)) { return new ProductB(); } else { throw new IllegalArgumentException("Invalid product type"); } } } ``` 在这个例子中,`SimpleFactory`是工厂类,它根据传入的字符串类型创建`ProductA`或`ProductB`对象。客户端代码只需调用`SimpleFactory.createProduct()`方法并传入所需的产品类型,就可以获取到相应的对象实例,无需关心具体实现细节。 然而,简单工厂模式也有一些局限性。如果需要添加新产品,必须修改工厂类,这违反了开闭原则(对扩展开放,对修改关闭)。工厂方法通常具有静态类型,这意味着无法进行基于配置的动态对象创建。此外,如果产品类数量庞大或者层次结构复杂,简单工厂模式可能会变得难以维护。 在某些情况下,可以考虑使用其他创建型模式,如工厂方法模式、抽象工厂模式或构建者模式,以适应更复杂的需求。例如,工厂方法模式允许子类决定具体的产品实例,而抽象工厂模式则处理一组相关的或相互依赖的对象的创建。构建者模式则通过分步骤构建复杂对象,提供了更好的灵活性。 简单工厂模式在简单场景下提供了便利的代码组织和对象创建方式,但在系统需要扩展或有更复杂需求时,可能需要转向其他设计模式。在实际编程中,应根据项目的具体需求和规模选择合适的设计模式。
- 1
- 粉丝: 57
- 资源: 39
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助