动力节点Java学院:掌握简单工厂模式与静态工厂方法实例

0 下载量 3 浏览量 更新于2024-09-02 收藏 193KB PDF 举报
简单工厂模式是一种面向对象设计模式,它在软件开发中常用于创建对象实例的过程。这个模式主要关注如何在不指定具体类的情况下,根据需求动态地创建对象。它由三个关键角色组成: 1. 工厂角色(Creator):这是模式的核心,通常称为工厂类或简单工厂,负责根据输入参数(如类型标识或配置)决定并创建特定类型的具体产品。它隐藏了对象创建的细节,使得客户端无需关心对象的创建过程。 2. 抽象产品(Abstract Product):这是一个接口或抽象类,定义了所有具体产品必须实现的公共行为和属性。它是工厂类创建的对象的共享基类,提供了对所有产品的通用访问。 3. 具体产品(Concrete Products):每个具体产品都是抽象产品的一个实现,它们具有不同的特性和行为。这些产品是工厂模式中的实际产品实例,工厂负责为客户端提供这些实例。 简单工厂模式的应用场景常见于那些需要根据条件动态选择并创建对象,且这些对象具有共同特征但内部实现不同的情况。例如,在一个游戏系统中,可能有多种类型的敌人,每种敌人都有自己的AI和行为,这时可以通过一个敌人工厂类来创建不同类型的敌人。 在实际代码实现时,首先定义一个抽象的食物接口,然后创建工厂类,根据接口实现创建具体的食物对象。下面是一个简单的例子: ```java // 抽象食物接口 package com.bjpowernode.designPattern.S; public interface Food { void prepare(); } // 具体食物实现 package com.bjpowernode.designPattern.S; public class McDonaldFood implements Food { @Override public void prepare() { System.out.println("准备麦当劳食物"); } } // 工厂类 package com.bjpowernode.designPattern.S; public class FoodFactory { public static Food createFood(String type) { if (type.equals("McDonald")) { return new McDonaldFood(); } else { // 其他类型的食品逻辑... } return null; // 返回具体产品实例 } } // 客户端使用 public class Client { public static void main(String[] args) { Food food = FoodFactory.createFood("McDonald"); food.prepare(); // 创建并使用麦当劳食物 } } ``` 总结起来,简单工厂模式通过将对象的创建封装在一个单独的工厂类中,降低了客户端代码的耦合度,并且保持了代码的可扩展性。当需要添加新的产品类型时,只需在工厂中添加相应逻辑即可,而不会影响到使用它的客户端。