Java设计模式:工厂与工厂方法详解

需积分: 3 3 下载量 68 浏览量 更新于2024-08-18 收藏 350KB PPT 举报
Java中的设计模式是一种在软件设计中广泛应用的最佳实践,它们提供了解决常见问题的标准化解决方案。本资源主要关注创建模式,这是一种处理对象实例化和生产策略的模式,有助于简化代码、提高可扩展性和灵活性。 创建模式主要包括两个常见的实例:工厂方法模式和抽象工厂模式。 1. **工厂方法模式**: - 它的核心思想是将创建对象的责任从客户端转移到一个抽象工厂类或工厂方法中。在提供的代码示例中,`Factory`类作为抽象工厂,根据传入的参数(整数或字符串)动态地创建`Sample`的子类(如`SampleA`或`SampleB`)。这样做的好处是客户端无需关心产品的具体实现细节,只需通过工厂方法获取所需的对象,降低了耦合度。 ```java public static Sample creator(int which) { // 根据输入选择创建不同的Sample对象 } public static Sample creator(String className) { // 使用Class.forName动态加载并创建指定类的实例 } ``` 调用方式如 `SampleA = Factory.creator(1)` 或 `SampleB = Factory.creator("SampleB")`。 2. **抽象工厂模式**: - 在抽象工厂模式中,核心工厂类不再直接创建产品,而是定义一个接口,让子类来实现。这允许在不改变现有代码的情况下,引入新的产品系列。例如,`Factory`现在成为一个抽象工厂,其子类(如`SampleAFactory`和`SampleBFactory`)负责创建特定系列的`Sample`对象。 ```java public abstract class Factory { public abstract Sample createSample(); } public class SampleAFactory extends Factory { public Sample createSample() { return new SampleA(); } } ``` 调用时通过具体的工厂子类创建对象,如 `SampleA = SampleAFactory().createSample()`。 这些创建模式有助于在设计中保持松耦合和灵活性,使得代码结构清晰,易于维护和扩展。当产品系列或产品实现发生变化时,只需修改相应的工厂类,而不必影响依赖它的客户端代码。这对于大型项目和团队协作至关重要,有助于提高代码质量和可重用性。