java中的反射三(反射机制深入---工厂设计模式)
来源:互联网 发布:数据终端设备dte 编辑:程序博客网 时间:2024/05/23 11:28
工厂设计模式最大的好处就是可以在应用进行解耦和操作。
下面例子:
创建一个接口并其实现
interface Fruit{public void eat() ;// 吃水果}class Apple implements Fruit{public void eat(){// 覆写eat()方法System.out.println("** 吃苹果");}};class Orange implements Fruit{public void eat(){System.out.println("** 吃橘子") ;}};
通过反射机制创建一个简单工厂
class Factory{public static Fruit getInstance(String className){Fruit fruit = null ;try{fruit = (Fruit)Class.forName(className).newInstance() ;}catch(Exception e){e.printStackTrace() ;}return fruit ;}};public class FactoryDemo01{public static void main(String args[]){Fruit f = Factory.getInstance("org.lxh.demo15.factorydemo01.Apple") ;if(f!=null){f.eat() ;}}};
对上面的工厂进行优化:结合属性文件的工厂模式
class Init{public static Properties getPro(){Properties pro = new Properties() ;File f = new File("d:\\fruit.properties") ;// 找到属性文件try{if(f.exists()){// 文件存在pro.load(new FileInputStream(f)) ;// 读取属性}else{pro.setProperty("apple","org.lxh.demo15.factorydemo02.Apple") ;pro.setProperty("orange","org.lxh.demo15.factorydemo02.Orange") ;pro.store(new FileOutputStream(f),"FRUIT CLASS") ;}}catch(Exception e){}return pro ;}};class Factory{public static Fruit getInstance(String className){Fruit fruit = null ;try{fruit = (Fruit)Class.forName(className).newInstance() ;}catch(Exception e){e.printStackTrace() ;}return fruit ;}};public class FactoryDemo02{public static void main(String args[]){Properties pro = Init.getPro() ;Fruit f = Factory.getInstance(pro.getProperty("apple")) ;if(f!=null){f.eat() ;}}};
- java中的反射三(反射机制深入---工厂设计模式)
- java中的设计模式(三)--抽象工厂模式 反射机制
- Java反射机制 -工厂设计模式
- java反射机制-工厂设计模式
- java中的设计模式(二)--工厂方法模式 反射机制
- java中的设计模式(二)--工厂方法模式 反射机制
- 16---java反射机制06(工厂设计模式)
- Java反射机制在工厂模式中的应用
- java反射机制在工厂模式中的应用
- Java反射机制详解:从classLoader到反射机制再到抽象工厂设计模式
- 简单工厂设计模式-反射机制
- Java反射机制(五):使用反射增强简单工厂设计模式
- [转] Java的反射机制+工厂模式
- java反射机制及简单工厂模式
- java反射机制工厂模式的应用
- Java 文件反射机制 工厂模式
- Java反射机制与工厂模式
- 反射--工厂设计模式
- ubuntu 8.04搭建TQ2440开发环境
- 五只猴子分桃
- rqnoj-147
- 第四次作业
- linux系统编程之基础必备(四):C 标准库IO缓冲区和内核缓冲区的区别
- java中的反射三(反射机制深入---工厂设计模式)
- Denuo DirectUI 控件布局特性
- Android调试工具之Traceview
- 非常好的一篇博客
- poj3140
- Using google's free SVN repository with Eclipse (使用Eclipse的SVN插件管理GOOGLE CODE的项目)
- FlameDesktop - 开发进程 - 03
- fork和vfork函数、wait和waitpid函数
- Delphi中的各种路径