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();
        }
    }
  • 相关阅读:
    网页字体大小控制
    表格文本框搜索匹配
    表格展开和关闭
    表格复选框控制行高亮
    jquery表单验证
    文本框变大变小效果--jQuery
    滚动条高度变化jQuery
    点击标题显示隐藏效果--jQuery
    jQuery练习2-1
    jQuery练习2
  • 原文地址:https://www.cnblogs.com/GrapefruitTea/p/9657364.html
Copyright © 2011-2022 走看看