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();
        }
    }
  • 相关阅读:
    [zz]redhat6.0无法识别ntfs分区的解决方法
    使用ftp搭建yum源问题解决
    [zz]搭建centos6.0本地yum源(32位)
    JAVA传统线程技术
    JAVA判断字符串是否为数字
    java之异常
    随便记两笔Java中的反射
    【转】单例模式完全解析
    java.lang.Enum
    文件搜索
  • 原文地址:https://www.cnblogs.com/GrapefruitTea/p/9657364.html
Copyright © 2011-2022 走看看