博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
根据配置文件的值创建不同对象
阅读量:6231 次
发布时间:2019-06-21

本文共 2073 字,大约阅读时间需要 6 分钟。

hot3.png

1、新建抽象类AbstractUser

package com.kobe.model;public abstract class AbstractUser {    public abstract void work();}

2、新建继承AbstractUser 的 AbstractStudent 、 AbstractTeacher  

package com.kobe.model;public class AbstractTeacher extends AbstractUser{    private int id;    private String name;    @Override    public void work(){        System.out.println("teach");    }    public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }}
package com.kobe.model;public class AbstractStudent extends AbstractUser {    private int id;    private String name;    @Override    public void work(){        System.out.println("study");    }    public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }}

3、在resources目录下新建配置文件 obj.properties

AbstractModel = com.kobe.model.AbstractStudent

4、新建工厂类  getUser方法 从配置文件中读取配置信息

package com.kobe.test;import com.kobe.model.AbstractUser;import java.util.Properties;public class AbstractFactory {    public static AbstractUser getUser(){        try {            Properties prop = new Properties();            prop.load(simpleFactory.class.getClassLoader().getResourceAsStream("obj.properties"));            String model = (String) prop.get("AbstractModel");            AbstractUser u = (AbstractUser) Class.forName(model).newInstance();            return u;        } catch (Exception e) {            e.printStackTrace();        }        return null;    }}

5、新建测试类

package com.kobe.test;import com.kobe.model.AbstractUser;public class testAbstract {    public static void main(String[] args) {        AbstractUser u1 = AbstractFactory.getUser();        u1.work();    }}

输出结果是  study

如果把配置文件中的 AbstractModel的值换成 com.kobe.model.AbstractTeacher  

输出就变成 teach  

根据配置文件创建不同的实体类,不需修改java代码

 

转载于:https://my.oschina.net/xiaozhiwen/blog/1860465

你可能感兴趣的文章
列举数据挖掘领域的十大挑战性问题
查看>>
校园网解决方案分析
查看>>
Web Component 实战 读书笔记
查看>>
SpringMVC 参数注解
查看>>
源码构建lamp环境
查看>>
第四周作业
查看>>
/boot目录存储空间满导致apt-get安装软件失败
查看>>
LaTeX - 可伸缩箭头
查看>>
关于IT
查看>>
flask-SqlAlchemy QueuePool limit of size 5 overflow 10 reached
查看>>
显示salt进程具体名称
查看>>
HTTP GET方式提交与POST方式提交
查看>>
mysql5.7虚拟列初次尝试
查看>>
Exchange server2013 搭建步骤
查看>>
购物车
查看>>
Java基础学习总结(2)——接口
查看>>
MyBatis学习总结(三)——优化MyBatis配置文件中的配置
查看>>
配置Linux 免密码登陆
查看>>
安装php:configure: error: libpng.(a|so) not found解决办法
查看>>
公众号和微信个人号 加粉最全的方法
查看>>