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(); } }