一个java实现的简单工厂模式

来源:互联网 发布:java程序员笔试题 编辑:程序博客网 时间:2024/05/01 03:53
定义接口
package com.ttjslbz.factory;public interface Api {void functionA();}
定义实现A
public class ImplA implements Api {@Overridepublic void functionA() {// TODO Auto-generated method stubSystem.out.print("This is implement A for Api");}}
定义实现B
public class ImplB implements Api {@Overridepublic void functionA() {// TODO Auto-generated method stubSystem.out.print("This is implement B for Api");}}
工厂
public class Factory {// 预加载需要读取的配置文件private static Properties p;static {InputStream in = Factory.class.getResourceAsStream("Factory.properties");;p = new Properties();try {p.load(in);} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();} finally {try {in.close();} catch (IOException e) {e.printStackTrace();}}}public static Api creatApi(String propertie) {Apiapi = null;try { api = (Api)Class.forName(p.getProperty(propertie)).newInstance();}catch(InstantiationException e){e.printStackTrace();} catch (IllegalAccessException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (ClassNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();}return api;}}
客户端
public class Client {public static void main(String[] args) {Api apiA = Factory.creatApi("IMPLEMENTA");apiA.functionA();Api apiB= Factory.creatApi("IMPLEMENTB");apiB.functionA();Api apiC = Factory.creatApi("IMPLEMENTC");apiC.functionA();}}

原创粉丝点击