工厂模式 (Factroy Method)就是建立一个工厂类(Factory)和一个抽象接口,工厂类类似是一个加工对象的工厂,里面有一个静态的(static)生产者(creator)方法 生产的产品(返回值return)是等待实现的接口类型(interface),而这个静态方法要传入一个整型的参数,作为产品编号(int which)也就是接口被实现后类的一个编号,这样方便以后使用,当你在外部想实例化你实现接口的那个类的时候直接调用工厂类里面的方法用穿进去的产品编号,及对象编号,来实例化类,这样在不知道调用哪个类的情况下做到了功能的实现,代码细节更加封装,重用性更好,也比较灵活。比如:
你会建立一个专门生产Sample实例的工厂:
public class Factory{
public static Sample creator(int which){
//getClass 产生Sample 一般可使用动态类装载装入类。
if (which==1)
return new SampleA();
else if (which==2)
return new SampleB();
}
}
那么在你的程序中,如果要实例化Sample时.就使用
Sample sampleA=Factory.creator(1);
适用性:
- 当一个类不知道它所必须创建的对象的类的时候。
- 当一个类希望由它的子类来指定它所创建的对象的时候。
- 当类将创建对象的职责委托给多个帮助子类中的某一个,并且你希望将哪一个帮助子类是代理者这一信息局部化的时候。
- 不知道这个借口以后不知道要有多少子类的时候