第一步,定义一个接口类
package factory.face;
/**
* 接口,为了保证返回的对象可以统一用 Product接受
* @author Administrator
*/
public interface Product {
void show();
}
第二步,写两个继承了以上接口的类
package factory.extend;
import factory.face.Product;
public class ProductA implements Product{
@Override
public void show() {
System.out.println("This is Product A!");
}
}
package factory.extend;
import factory.face.Product;
public class ProductB implements Product{
@Override
public void show() {
System.out.println("This is Product B!");
}
}第三步,工厂类中应用反射机制
package factory.main;
import factory.face.Product;
/**
* 工厂类,在生产具体产品的时候,客户端只需要调用Factory 中的静态方法就可
* @author Administrator
*
*/
public class Factory {
public static Product getProduct(String className) throws InstantiationException, IllegalAccessException, ClassNotFoundException {
return (Product)Class.forName(className).newInstance();
}
public static void main(String[] srgs) throws InstantiationException, IllegalAccessException, ClassNotFoundException {
// System.out.println("WWWW");
// Class<?> classA = Class.forName("factory.extend.ProductA");
// Product aProduct = (Product)classA.newInstance();
// aProduct.show();
Product a= Factory.getProduct("factory.extend.ProductA");
a.show();
Product b=Factory.getProduct("factory.extend.ProductB");
b.show();
}
}
本文介绍了简单工厂模式的设计与实现过程,包括定义接口类、创建实现该接口的具体类、工厂类中应用反射机制等内容,并对比了使用与未使用反射机制的区别。
420

被折叠的 条评论
为什么被折叠?



