打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
(五) 实现简单工厂

--------------------------------------------------------------------

配置文件config.properties的内容
appSet = am.ClassB
-------------------------------------------------------------------
package com;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Properties;

/**
 *需求:实现简单工厂模式
 *实现要点:通过读取配置文件的信息动态创建对象 
 *实现步骤:1.编写properties文件存储配置信息
 *        2.编写产品接口
 *        3.编写两个实现接口的类
 *        4.编写简单工厂生产产品
 *        5.编写测试类
 */
//产品接口
interface InterfaceBase{
void fun1();
void fun2();
}
//第一个实现接口的类
class ClassA implements InterfaceBase{
public void fun1(){
System.out.println("这是ClassA的fun1方法");
}
public void fun2(){
System.out.println("这是ClassA的fun2方法");
}
}
//第二个实现接口的类
class ClassB implements InterfaceBase{
public void fun1(){
System.out.println("这是ClassB的fun1方法");
}
public void fun2(){
System.out.println("这是ClassB的fun2方法");
}
}
//编写工厂类
class SimpleFactory{
//读取配置文件的信息
private static String getConfigInfo(){
String typeName = "";
Properties p = new Properties();
try {
p.load(new FileInputStream("config.properties"));
typeName = p.getProperty("appSet");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return typeName;
}
//工厂方法,创建不同的产品,但产品有相同的规范
public static InterfaceBase createProduct(){
InterfaceBase obj = null;
String className = SimpleFactory.getConfigInfo();
try {
obj = (InterfaceBase)Class.forName(className).newInstance();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return obj;
}
}
//测试工厂类
public class Example03 {
public static void main(String[] args) {
InterfaceBase obj = SimpleFactory.createProduct();
obj.fun1();
obj.fun2();
}
}
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
反射
线程之间通信 等待(wait)和通知(notify)
第十一讲:多线程与多线程
try
Java 实现线程安全的三种方式
OBJ
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服