一、工厂模式使我们是我们最常用的实例化对象模式,是用工厂方式代替new操作的一种模式。
通常我们创建类的实例对象的时候,以类A为例,A a=new A();采用new对象的操作。可是实际情况是,通常我们需要在实例对象的时候做一些其他的初始化操作,比如赋值,查询数据等。如 A a=new A(参数)。
但是有时候,我们创建实例的初始化操作并不仅仅是赋值那么简单,可能是很长一段代码,一段操作。这样代码就很难看,而且很不安全,为了简化操作,就引出了工厂模式。
二、面向对象的封装和分派告诉我们,尽量将长的代码分派“切割”成每段,将每段在“封装”起来(减少段和段之间耦合联系性),这样就会将风险分散,以后如果需要修改。只要更改每段,不会在发生牵一发而动全身的事情。
1、首先,我们需要将创建实例的工作和使用实例的工作进行分开,也就是说,让创建实例所需要的大量初始化工作从构造函数中分离出来。这时候我们就需要我们的Factory工厂模式生成对象了。
public class Factory {
public static A creatA(int position) {
A a =null;
if (position ==1) {
a =new A1();
}else if (position ==2) {
a =new A2();
}
return a;
}
}
在程序中,需要使用A的实例的话,就可以直接调用
A a=Factory.creatA(2);