除了JDK等框架或工具中的类,自己编写的类不得使用new创建对象(Test除外)。
★工具类God是抽象依赖原则的使能工具。
既然作为简单工具,其使用具有如下限制:
God仅支持无参构造器创建对象。
配置文件选择属性配置文件
配置文件指定为BlueJ项目根目录下的my.properties,文件保存为UTF-8格式。
基于JDK7及以后平台,因为使用了新try语法。
【实验6:通过God创建对象】设计一个类层次如Animal及其子类Dog和Cat,有方法cry()。在Demo中通过God创建Animal对象并调用其方法。
1.如何使用God
你有两种选择,之所以需要区别两种选择,是因为两者的源代码有一点不同。
①直接使用God的源代码。可以将God的源代码(例程3-2中命名为
God0),复制粘贴到自己的BlueJ练习项目中,作为你自己的代码使用。(按照项目中建的包不同,修改package语句)。
package chap3.init;//通常使用打包的jar
import java.io.*;
import java.util.Properties;
public class God0{
private God0(){}
/**
* @param path 属性配置文件的路径
* @param key 键
* @return 键对应的值
*/
private static String getValue(String path, String key) {
Properties props = new Properties();
InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream(path);
try (InputStreamReader isr = new InputStreamReader(is, "UTF-8");) {//请用UTF格式保存.properties文件。
props.load(isr);//从流中加载properties文件信息
} catch (UnsupportedEncodingException ex) {
} catch (IOException ex) {
}
return props.getProperty(key);
}
//简化版本,path固定为项目根目录下的my.properties
public static Object create(String key) {
return create("my.properties", key);
}
private static Object create(String path, String key) {