正在学习中希望多提意见
记得在有篇博客里读到对象的实例化方式为三种:
1、new 通常的实例化方式
Student student = New Student();
2、get方式 通过建造实例化工厂
public interface ILearn{
public void strartLearn();
}
public class goodStudent implements ILearn{
public void startLearn(){
System.out.println("好学生效率高");
}
}
public class badStudent implements ILearn{
public void startLearn(){
System.out.println("坏学生没效率");
}
}
public class studentFactory{
public static ILearn getStudent(int type){
if(type==1){
return new goodStudent();
}else if(type==2){
return new badStudent();
}
}
}
3、set方式 通过建造实例化工厂,外部配置的xml文件以及java的反射原理进行实例化创建大体意思就是将工厂中的代码做如下改变
public class studentFactory{
public static ILearn getStudent(Class c){
ILearn student=null;
try {
student= (ILearn)Class.forName(c.getName()).newInstance();
} catch (ClassNotFoundException e) {
System.out.println("配置文件中的定义可能出错无法创建该类型的实例");
}
return student;
}
}