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
相关文章推荐
- 贝叶斯定理与当代计算机应用
- Web应用中缓存的七种武器
- 如何应用Java的静态内部类 推荐
- NCrawler爬虫在应用中一些问题
- spring中读取资源文件两种方式及应用场景
- CSS应用小技巧十四例
- 的syslanguage表应用一例
- 【统计技术】数据挖掘在反欺诈中的应用
- 软件应用这回事
- 为Rhodes跨平台开发移动应用准备开发环境:安装配置RhoStudio
- Kinect for Windows SDK开发应用初体验
- IOS 应用关闭屏幕锁定分析
- 通过 Push 来提高移动应用的活跃度 3ff0
- 范式应用实例剖析
- Windows 8 应用开发权威指南 之 应用程序的数据存储(1)应用程序安装目录操作
- colorPicker控件的应用
- Java 多线程应用 之 ArrayBlockingQueue
- 【linux草鞋应用编程系列】_5_ Linux网络编程
- Matlab与C/C++混合编程接口及应用
- 【斗医】【14】Web应用开发20天