一直都对于设计模式一知半解。所以找了个视频好好的学习学习,做个学习笔记加深些记忆。
简单工厂类真的是简单,不用费什么功夫,看到代码就懂了。主要就是通过工厂类产生实例化对象。对于这个类的实现首先要想到2点:
1、工厂类产生实例,所以工厂类中必须要有 new 的逻辑。
2、抽象实例的父类,一个工厂产生不同的实例对象,如果按照一个方法对应一个实例,那和直接new 对象有和区别,所以必须要给所有的实例抽象出一个父类接口作为唯一的返回值类型。这个父类负责描述所有实例的公共接口。
然后就直接来看代码吧
第一步,抽象接口
public interface Fruit {
// 水果名
public void getName();
}
第二步,创建实例类
public class Apple implements Fruit{
public void getName(){
System.out.println("苹果");
}
}
public class Banana implements Fruit{
public void getName(){
System.out.println("香蕉");
}
}
第二步,工厂类,最初new 对象,再改进到反射逻辑
public class FruitFactory {
// /*
// * 获得Apple类的实例
// */
// public static Fruit getApple() {
// return new Apple();
// }
//
// /*
// * 获得Banana类实例
// */
// public static Fruit getBanana() {
// return new Banana();
// }
/*
* get方法,获得所有产品对象
*/
public static Fruit getFruit(String type) throws InstantiationException, IllegalAccessException, ClassNotFoundException {
// if(type.equalsIgnoreCase("apple")) {
// return Apple.class.newInstance();
//
// } else if(type.equalsIgnoreCase("banana")) {
// return Banana.class.newInstance();
// } else {
// System.out.println("找不到相应的实例化类");
// return null;
// }
Class fruit = Class.forName(type);
return (Fruit) fruit.newInstance();
}
}
不需要多少代码,就完成了简单的工厂模式。