思路:
1.创建不同版本的基础类或基础接口;
2.继承基础类,实现Android,Apple,Homos等子类;
3.定义一个函数,根据不同子类的参数实现不同的子类。
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
/**
* 抽象产品:工厂
* @author Administrator
*
*/
abstract class ProductFactory {
//获取产品版本
abstract String edition(String name);
}
/**
* Android
* @author Administrator
*
*/
class AndroidProduct extends ProductFactory{
@Override
String edition(String name) {
return readProperties.getEdition(name);
}
}
/**
* Apple
* @author Administrator
*
*/
class AppleProduct extends ProductFactory{
@Override
String edition(String name) {
return readProperties.getEdition(name);
}
}
class HomosProduct extends ProductFactory{
@Override
String edition(String name) {
return readProperties.getEdition(name);
}
}
/**
* 读取配置文件类
* @author Administrator
*
*/
class readProperties{
public static String getEdition(String name){
if(name== null || "".equals(name)) {
return "";
}
Properties pt = new Properties();
//配置文件在src目录下
InputStream in = readProperties.class.getResourceAsStream("edition.properties");
try {
pt.load(in);
} catch (IOException e) {
e.printStackTrace();
}
return pt.getProperty(name);
}
}
public class ProductTest{
public static void main(String[] args) {
//ProductFactory作为产品工厂 具体的表现 以实现类即对象为准(多态的概念)
ProductFactory android= new AndroidProduct();
System.out.println(android.edition("Android")); //输出8
ProductFactory apple= new AppleProduct();
System.out.println(apple.edition("Apple")); //输出9
ProductFactory homos= new HomosProduct();
System.out.println(homos.edition("Homos")); //输出7
}
}
配置文件:edition.properties的内容
Android=8
Apple=9
Homos=7
你们可以交流一下