• 设计模式:工厂方法模式


    工厂方法模式(Factory Method Pattern)是一种创建型设计模式,它定义了一个用于创建对象的接口,但将具体的对象创建延迟到子类中进行。这样可以使一个类的实例化延迟到其子类中,从而实现了对对象的创建过程的解耦。
    在工厂方法模式中,有四个主要角色:

    1. 产品(Product):定义了工厂方法创建的对象的接口。
    2. 具体产品(Concrete Product):实现了产品接口的具体类。
    3. 工厂(Factory):定义了创建产品对象的抽象方法,由子类实现具体的创建逻辑。
    4. 具体工厂(Concrete Factory):实现了工厂接口,负责创建具体产品的实例。

    代码实现

    interface Product {
        void operation();
    }
    // 具体产品A
    class ConcreteProductA implements Product {
        @Override
        public void operation() {
            System.out.println("ConcreteProductA operation");
        }
    }
    // 具体产品B
    class ConcreteProductB implements Product {
        @Override
        public void operation() {
            System.out.println("ConcreteProductB operation");
        }
    }
    // 工厂接口
    interface Factory {
        Product createProduct();
    }
    // 具体工厂A
    class ConcreteFactoryA implements Factory {
        @Override
        public Product createProduct() {
            return new ConcreteProductA();
        }
    }
    // 具体工厂B
    class ConcreteFactoryB implements Factory {
        @Override
        public Product createProduct() {
            return new ConcreteProductB();
        }
    }
    // 示例用法
    public class Main {
        public static void main(String[] args) {
            Factory factoryA = new ConcreteFactoryA();
            Product productA = factoryA.createProduct();
            productA.operation(); // 输出:ConcreteProductA operation
            
            Factory factoryB = new ConcreteFactoryB();
            Product productB = factoryB.createProduct();
            productB.operation(); // 输出:ConcreteProductB operation
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47

    总结

    工厂方法模式的优点包括:

    1. 降低了代码的耦合性:客户端只需要依赖于产品的抽象接口和工厂接口,无需关心具体产品的实现细节。
    2. 增加了系统的可扩展性:当需要添加新产品时,只需要创建对应的具体产品类和具体工厂类即可,无需修改现有代码。
    3. 符合开闭原则:对扩展开放,对修改关闭。

    工厂方法模式的缺点包括:

    1. 增加了系统的复杂度:引入了新的工厂接口和具体工厂类,增加了系统的抽象性和理解难度。
    2. 每增加一个产品,就需要创建一个对应的具体产品类和具体工厂类,增加了系统的代码量。
      总结来说,工厂方法模式适用于需要创建的对象较多且需要灵活扩展的场景,它提供了一种统一的对象创建方式,并且符合面向对象的设计原则。
  • 相关阅读:
    墨者学院 WordPress 远程命令执行漏洞(CVE-2018-15877)
    又一家芯片新势力杀入车载领域
    《对线面试官》| 高频 Linux 面试题 Part1
    mysql之 Redis配置与优化
    [NSSRound#1 Basic]basic_check
    SpringBoot配置文件
    【Overload游戏引擎细节分析】PBR材质Shader
    十、Spring Boot 安全管理(1)
    Android程序设计之学校疫情防控管理
    LeetCode----120. 三角形最小路径和
  • 原文地址:https://blog.csdn.net/qq_27586963/article/details/132840611