工厂模式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了工厂模式相关的知识,希望对你有一定的参考价值。

简单工厂模式:由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类(这些产品类继承自一个父类或接口)的实例;

工厂方法模式:定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。核心工厂类不再负责产品的创建,这样核心类成为一个抽象工厂角色,仅负责具体工厂子类必须实现的接口;

抽象工厂模式:提供一个接口,在不必指定产品的具体的情况下,创建多个产品族中的产品对象。由实现接口的工厂类负责创建抽象产品的具体子类的实例。

代码实例:

1.简单工厂模式

//数据库连接对象接口
public interface Connection {
    
    //创建连接语句
    void createStatement();
}

//mysql连接对象类
public class MysqlConnection implements Connection {

    @Override
    public void createStatement() {
        System.out.println("创建mysql连接语句!");
    }
}

//oracle连接对象类
public class OracleConnection implements Connection {

    @Override
    public void createStatement() {
        System.out.println("创建oracle连接语句!");
    }
}

//连接对象工厂类
public class ConnectionFactory {

    //根据传入的参数决定具体创建的对象
    public Connection createConnection(String key) {
        if(key == "mysql"){
            return new MysqlConnection();
        }
        else if (key == "oracle") {
            return new OracleConnection();
        }
        else {
            return null;
        }
    }
}

//测试类
public class Test {
    
    public static void main(String[] args) {
        
        String key1 = "mysql";
        String key2 = "oracle";
        
        ConnectionFactory factory = new ConnectionFactory();
        
        //创建mysql连接对象
        Connection mysqlConnection = factory.createConnection(key1);
        mysqlConnection.createStatement();
        
        //创建oracle连接对象
        Connection oracleConnection = factory.createConnection(key2);
        oracleConnection.createStatement();
    }
}

输出结果:
创建mysql连接语句!
创建oracle连接语句!

 

以上是关于工厂模式的主要内容,如果未能解决你的问题,请参考以下文章

设计模式学习——简单工厂模式工厂模式抽象工厂模式

设计模式简单工厂模式 ( 简介 | 适用场景 | 优缺点 | 代码示例 )

设计模式学习——简单工厂模式工厂模式抽象工厂模式

设计模式工厂方法模式 ( 简介 | 适用场景 | 优缺点 | 代码示例 )

设计模式-简单工厂工厂方法模式抽象工厂模式详解

C++工厂模式(简单工厂工厂方法抽象工厂)