介绍
抽象工厂模式的出现是对简单工厂模式的升级,有利于项目后期的开发修改,对于简单工厂模式可以参考我的另一篇博客,从简单工厂模式中可以发现在工厂中创建相应的对象是通过条件判断方式,进行选择的方式进行创建,这明显不利于今后的项目功能的修改增加,由此我们引入了抽象工厂模式。
使用
使用中,即将简单工厂模式中的工厂也进行抽象化,过程如下:
public interface IApi {
void show();
}
public class AndroidApi implements IApi {
@Override
public void show() {
System.out.println("Android : 我是Android的api");
}
}
public class IOSApi implements IApi{
@Override
public void show() {
System.out.println("Android : 我是IOS的api");
}
}
public interface IFactory {
IApi create();
}
//具体的工厂专门为某一个产品服务
public class AndroidFactory implements IFactory {
@Override
public IApi create() {
return new AndroidApi();
}
}
public class IOSFactory implements IFactory {
@Override
public IApi create() {
return new IOSApi();
}
}
使用:
IFactory factory=new IOSFactory();
factory.create().show();
在android 官方中也运用此开发模式,可以参考android底层 MediaPlayerFactory.cpp。感兴趣的同学可以自行查资料。