public interface AbstractFactory {
Ball creteBall(String type);
}
//创建具体工厂
public class BallFactory implements AbstractFactory {
@Override
public Ball creteBall(String type) {
if (type.equalsIgnoreCase("Basketball")) {
return new Basketball();
} else if (type.equalsIgnoreCase("Football")) {
return new Football();
}
return null;
}
}
//产品抽象
public interface Ball {
void play();
}
//产品实现
public class Basketball implements Ball {
@Override
public void play() {
Log.d("ball","Basketball");
}
}
public class Football implements Ball {
@Override
public void play() {
Log.d("ball","Football");
}
}
1. 什么是抽象工厂模式?有什么作用?
抽象工厂模式是在工厂方法模式基础上进一步对工厂进行抽象,由抽象工厂产生具体工厂,再有具体工厂产生具体产品。在抽象工厂模式中,接口是负责创建一个具体对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供具体对象。
2. 如何实现?
//创建抽象工厂
//创建具体工厂
//产品抽象
//产品实现
//使用抽象工厂模式
3. JDK或Android的应用举例
在JDK中DriverManager#getConnection中使用的就是抽象工厂模式。
4. 小结
抽象工厂模式对工厂进行了抽象,使得每个生成的工厂都能按照工厂模式提供对象。