您的位置:首页 > 编程语言 > Java开发

java反射机制工厂模式的应用

2016-04-11 09:36 627 查看

下面我们来看看: 结合属性文件的工厂模式

首先创建一个fruit.properties的资源文件,

内容为:

1 2
apple=Reflect.Apple
orange=Reflect.Orange

 然后编写主类代码:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
package
 
Reflect;
 
import
 
java.io.*;
import
 
java.util.*;
 
interface
 
fruit{
    
public
 
abstract
 
void
 
eat();
}
 
class
 
Apple 
implements
 
fruit{
    
public
 
void
 
eat(){
        
System.out.println(
"Apple"
);
    
}
}
 
class
 
Orange 
implements
 
fruit{
    
public
 
void
 
eat(){
        
System.out.println(
"Orange"
);
    
}
}
 
//操作属性文件类
class
 
init{
    
public
 
static
 
Properties
getPro() 
throws
 
FileNotFoundException, IOException{
        
Properties pro=
new
 
Properties();
        
File f=
new
 
File(
"fruit.properties"
);
        
if
(f.exists()){
            
pro.load(
new
 
FileInputStream(f));
        
}
else
{
            
pro.setProperty(
"apple"
"Reflect.Apple"
);
            
pro.setProperty(
"orange"
"Reflect.Orange"
);
            
pro.store(
new
 
FileOutputStream(f), 
"FRUIT
CLASS"
);
        
}
        
return
 
pro;
    
}
}
 
class
 
Factory{
    
public
 
static
 
fruit
getInstance(String ClassName){
        
fruit f=
null
;
        
try
{
            
f=(fruit)Class.forName(ClassName).newInstance();
        
}
catch
 
(Exception
e) {
            
e.printStackTrace();
        
}
        
return
 
f;
    
}
}
class
 
hello{
    
public
 
static
 
void
 
main(String[]
a) 
throws
 
FileNotFoundException, IOException{
        
Properties pro=init.getPro();
        
fruit f=Factory.getInstance(pro.getProperty(
"apple"
));
        
if
(f!=
null
){
            
f.eat();
        
}
    
}
}

【运行结果】:Apple

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: