工厂模式有2种:工厂方法模式、抽象工厂模式
*工厂方法模式:一个产品系列
*抽象工厂模式:一个产品族(包含多个系列)
2.抽象工厂模式的实现:以华为系列手机为例
- 定义接口(青春版)
public interface YoungInterface {
public void drawYoung();
}
- 定义接口(标配版)
public interface StandardInterface {
public void drawStandard();
}
- P9实现(青春版)接口
public class P9Young implements YoungInterface {
@Override
public void drawYoung(){
System.out.println(-----------------P9青春版-----------------);
}
}
- P8实现(青春版)接口
public class P8Young implements YoungInterface {
@Override
public void drawYoung(){
System.out.println(-----------------P8青春版-----------------);
}
}
- P9实现(标配版)接口
public class P9Standard implements StandardInterface {
@Override
public void drawStandard(){
System.out.println(-----------------P9标配版-----------------);
}
}
- P8实现(标配版)接口
public class P8Standard implements StandardInterface {
@Override
public void drawStandard(){
System.out.println(-----------------P8标配版-----------------);
}
}
- 定义(手机工厂)接口:获取青春版、标配版
public interface MoblieFactory {
public YoungInterface getYoung();
public StandardInterface getStandard();
}
- 定义P8工厂类,继承(手机工厂)接口,获取P8系列的青春版、标配版
public class P8Factory implements MoblieFactory {
@Override
public YoungInterface getYoung(){
return new P8Young();
}
@Override
public StandardInterface getStandard(){
return new P8Standard();
}
}
- 定义P9工厂类,继承(手机工厂)接口,获取P9系列的青春版、标配版
public class P9Factory implements MoblieFactory {
@Override
public YoungInterface getYoung(){
return new P9Young();
}
@Override
public StandardInterface getStandard(){
return new P9Standard();
}
}
- 测试类
public class Test {
MoblieFactory p9_factory = new P9Factory();
P9Young p9_young = p9_factory.getYoung();
p9_young.drawYoung();
}
- 测试结果
-----------------P9青春版-----------------
总结:抽象工厂模式,实际是一个产品族,拥有多个产品系列。通过接口的继承以及实现,将单独的产品系列整合成一个产品族。