参考:JAVA设计模式之工厂模式(简单工厂模式+工厂方法模式)
http://blog.youkuaiyun.com/jason0539/article/details/23020989
总结:工厂方法的本质是的用户不用去关心对象的具体创建过程,而是把对象的创建交给工厂,为什么交给工厂呢?因为有时候对象的创建是一个复杂的过程,需要经过复杂的初始化,也需要获取一些辅助对象的来构造对象,可能还需要复杂的计算过程,总而言之,工厂方法就是把对象的创建的具体细节封装起来,用户不用关心对象创建的内部过程。
/**
* Created by chenxun on 2017/5/23.
*/
abstract class Product{
public Product(){ }
void show(){ };
}
class ProductA extends Product{
public ProductA(){
System.out.println("creatA");
}
@Override
void show() {
System.out.println("this is product a");
}
}
class ProductB extends Product{
public ProductB(){
System.out.println("creatB");
}
@Override
void show() {
System.out.println("this is product b");
}
}
class Factory {
public Product creat(int type) {
switch (type) {
case 1:
return new ProductA();
case 2:
return new ProductB();
default:
break;
}
return null;
}
}
public class design_factory{
public static void main(String[] args){
Factory factory = new Factory();
Product A = factory.creat(1);
A.show();
Product B = factory.creat(2);
B.show();
}
}