今天说说工厂模式
 工厂模式定义:提供
创建对象的
接口.
  简单的表述工厂的使用,在我们想要生成某个对象的时候,一般我们都是A a=new A();用这种方式来生成一个对象。像这种不需要参数的倒还好说,如果需要传入参数。就可能很麻烦和复杂。这个时候我们就可以考虑使用工厂方法了,让工厂方法来封装我们想要生成的对象。
要生成对象的统一实现接口
package factorymethod;
/**
*  要生成的对象
*/
public interface Product {
}
工厂生产出的产品
package factorymethod;
/**
 * 这个就是工程生产出的产品
 */
public class ConcreteProduct implements Product {
	public ConcreteProduct() {
		super();
	}
	private int level = 10;
	private String target = "FR";
	@Override
	public String toString() {
		return "ConcreteProduct [level=" + level + ", target=" + target + "]";
	}
}
我们的
构造器,也就是工厂了
package factorymethod;
/**
 * @author ZERO
 */
public abstract class Creator {
	private Product fProduct;
	public abstract Product factoryMethod();
	public void anOperation() {
		setfProduct(factoryMethod());
	}
	public Product getfProduct() {
		return fProduct;
	}
	public void setfProduct(Product fProduct) {
		this.fProduct = fProduct;
	}
}
为每个不同产品生产的工厂
package factorymethod;
public class ConcreteCreator extends Creator {
	public ConcreteCreator() {
		super();
	}
	public Product factoryMethod() {
		return new ConcreteProduct();
	}
}
最后看看测试类
package factorymethod;
public class FactorymethodTest {
	public static void main(String[] args) {
		ConcreteCreator creator = new ConcreteCreator();
		System.out.println(creator.factoryMethod().toString());
	}
}
这个工厂模式代码示例中,在使用的时候可以做很多扩展的,需要你慢慢体会