设计模式——工厂模式
--------------------编程问答-------------------- 怎么都没人帮忙,自己顶 --------------------编程问答-------------------- 请好好学习下spring或工厂模式,填写killer --------------------编程问答-------------------- 写少了,填写killer的实体类,也就是继承killer接口的类,填写killer1或者killer2,,, --------------------编程问答--------------------我知道是写killer1或者killer2 只是想问怎么写,因为直接填killer1或者killer2都会报错,所以我想问是不是应该填写killer1或者killer2的路径,但是,路径具体应该如何填写,我尝试了,但是都不对,所以才会来问的。 --------------------编程问答--------------------
如果直接填“Killer1”,则报错:
Exception in thread "main" java.io.FileNotFoundException: Killer1 (系统找不到指定的文件。)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(Unknown Source)
at java.io.FileInputStream.<init>(Unknown Source)
at pepper.com.KillerFactory.getKiller(KillerFactory.java:14)
at pepper.com.MainActivity.main(MainActivity.java:6) --------------------编程问答-------------------- 额 你的getKiller(String path) 换个参数啊 比如“killer1” “killer2” 或者定义成int类型也可以啊 int KILLER_1 = 1; --------------------编程问答-------------------- 这。。。你确定你的工厂类正确?? --------------------编程问答-------------------- 简单工厂可以这么修改:
public class KillerFactory {
public static Killer getKiller(int i) {
if (i == 1)
return new Killer1();
else (i == 2)
return new Killer1();
}
}
这仅仅是将对象的创建于对象本身进行分离。
========================================================
如果使用工厂模式,应该由不同的工厂创建不同的杀手,例如
public abstatc class KillerFactory {
public abstatc Killer getKiller();
}
public class KillerFactory1 extends KillerFactory {
public Killer getKiller() {
return new Killer1();
}
}
public class KillerFactory2 extends KillerFactory {
public Killer getKiller() {
return new Killer2();
}
} --------------------编程问答-------------------- 要不就按楼上的修改代码,要不你就理解清楚Properties 是个啥,感觉像是读外部文件获取数据转换为KILLER子类
补充:移动开发 , Android