简单工厂:提供一个对象实例创建的功能,而无需关心具体实现,被创建的实例的类型可以是接口、抽象类或者是具体类。简单地说就是通过一个工厂类来封装某些类或接口的实例的创建工作,同时提供外部可以获取实例的方法。也可以通过传递参数判断的方式选择实例的实现。
下面通过利用简单工厂来创建接口实例,实现如下:
(1)创建一个接口Api:
public interface Api {
public void handle();
}
(2)创建两个类ClassA 、ClassB,并分别实现接口Api:
public class ClassA implements Api{
@Override
public void handle() {
// TODO Auto-generated method stub
System.out.println("This is ClassA!");
}
}
public class ClassB implements Api{
@Override
public void handle() {
// TODO Auto-generated method stub
System.out.println("This is ClassB!");
}
}
(3)创建一个Factory类,并提供一个获取Api实例的方法getApi(int cond),并在该方法中实现对象的创建,通过判断传进的参数来判断返回的哪i一个Api实例:
public class Factory {
public static Api getApi(int cond){
Api api=null;
if(cond == 1){
return api=new ClassA();
}if(cond == 2){
return api=new ClassB();
}
return api;
}
}
(4)创建一个测试类,通过Factory类的getApi(int cond)方法来获取Api实例,并调用其方法。
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
//获取ClassA对象
Api apiA=Factory.getApi(1);
apiA.handle();
//获取ClassB对象
Api apiB=Factory.getApi(2);
apiB.handle();
}
}