zoukankan      html  css  js  c++  java
  • Java实现简单工厂模式

    1.介绍:

      简单工厂模式是属于创建型模式,但不属于23种GOF设计模式。

    2.使用场景:

      1)创建对象少的场景。

      2)客户端只关注工厂类参数,不关注细节实现。

    3.示例:

      1)抽象出一个连接器类

    public abstract class TransferConnection {
        public abstract void getConnection();
    }

      2)构造具体的对象,如Http、SSH连接器类

    public class SSHConnection extends TransferConnection {
        @Override
        public void getConnection() {
        System.out.println("Get SSH connection.");
    }
    }
    public class HttpConnection extends TransferConnection{
    
        @Override
        public void getConnection() {
            System.out.println("Get http connection.");
        }
    }

      3)构造工厂类

    public class ConnectionFactroy {
        public TransferConnection getTransferConnection(Class c) {
            TransferConnection transferConnection = null;
            try {
                transferConnection = (TransferConnection) Class.forName(c.getName()).newInstance();
            } catch (ClassNotFoundException e) {
                System.out.println(e.getMessage());
            } catch (IllegalAccessException e) {
                System.out.println(e.getMessage());
            } catch (InstantiationException e) {
                System.out.println(e.getMessage());
            }
            return transferConnection;
        }
    }

      4)客户端测试类(客户端只根据工厂类类参数获取对应的连接器)

    public class Test {
        public static void main(String[] args) {
            ConnectionFactroy factory = new ConnectionFactroy();
            TransferConnection transferConnection = factory.getTransferConnection(HttpConnection.class);
            if (null == transferConnection) {
                System.out.println("Invalid result.");
            }
            transferConnection.getConnection();
        }
    }
  • 相关阅读:
    如何使用 Python 進行字串格式化
    骨牌摆放问题 POJ 2411(状态压缩DP)
    ACM/OI中C++常用优化(实用/调试/技巧)代码(语法)
    Windows 系统如何完全卸载 VSCode
    Python 在VSCode中使用
    第十一场训练赛
    L1-046 整除光棍 (20分)
    Problem 330A
    POJ 2187 Beauty Contest (凸包 旋转卡壳)
    程序员:写作能收获什么?
  • 原文地址:https://www.cnblogs.com/GrapefruitTea/p/9657364.html
Copyright © 2011-2022 走看看