类反射学习(二)JAVA开发框架底层思想演示,以及类反射的应用

来源:互联网 发布:驾校预约考试软件 编辑:程序博客网 时间:2024/05/17 02:58

类反射有什么用呢? 就是可以在实际项目中框架不变,通过改变配置文件,从而改变功能的调用。
简单来说: 保持接口,工厂方法,不变,新增实现类(功能)。通过读取配置文件。从而达到调用新功能的目的
接口: USB 就一个work() 函数

public interface USB {    public abstract void work();}

实现类 有两个

public class USBCalling implements USB{    @Override    public void work() {        System.out.println("手机在通话---");         }}
public class USBElectricize implements USB{    @Override    public void work() {        System.out.println("手机在充电---");    }}

工厂方法: 因为还没学XML技术 所有先用 Properties

public class USBfactory {    private USBfactory(){    }    public static USB getUSB(){        USB usb = null;        try {            Properties p = new Properties();            // 找配置文件必须要找bin目录下的            FileInputStream fin = new FileInputStream(".\\bin\\dage\\hello\\Demo2\\factory\\usb.config");            p.load(fin);            String name = p.getProperty("name");            Class c = Class.forName(name);            usb = (USB) c.newInstance();        } catch (Exception e) {            e.printStackTrace();        }        return usb;    }}

当配置文件内容如下时 调用第一个实现类
(#号表示忽略)

name=dage.hello.Demo2.Impl.USBCalling#name=dage.hello.Demo2.Impl.USBElectricize

结果为
这里写图片描述
改变配置文件其他内容不变

#name=dage.hello.Demo2.Impl.USBCallingname=dage.hello.Demo2.Impl.USBElectricize

调用了 第二个实现类
这里写图片描述

0 0
原创粉丝点击