抽象工厂模式
抽象工厂模式是将一个简单东西变为复杂的东西,但是这样的可以方便以后的扩展,实现开闭原则,需要扩展只需要增加代码,不需要需改以前的代码。
抽象工厂类:负责加工产品的工厂,下面还有具体的工厂类
抽象产品类:一个产品的总称 。下面还有具体实现产品类
具体实现类:相当于客户端的调用。
以手机为例:
抽象工厂:
相当于一个手机总产,负责接收订单
public interface IFactory {
MB create();
}
工厂的具体实现类:
三星手机:
public class UnderSanXingFactory implements IFactory{
@Override
public ShouJi create() {
// TODO Auto-generated method stub
return new Sanxing();
}
}
小米手机:
public class UnderXiaoMiFactory implements IFactory{
@Override
public ShouJi create() {
// TODO Auto-generated method stub
return new XiaoMi();
}
}
每个工厂负责生产具体的手机,以后扩展只需要实现抽象工厂类,即可!
抽象具体类:
相当于一个手机的总称呼:
public class ShouJi{
public ShouJi() {
// TODO Auto-generated constructor stub
}
}
手机具体的分类:
三星:
public class SanXing extends ShouJi{
public void createShouji(){
System.out.println(“SanXing”);
}
}
小米
public class XiaoMi extends ShouJi{
public void createShouji(){
System.out.println(“XiaoMi”);
}
}
要增加一个手机,只要继承手机类即可!!
客户端的调用:
public class FactoryMain {
public static void main(String[] args) {
// 调用生产三星手机
IFactory factory = new UndeSanxingFactory();
SanXing sanXing= (SanXing) factory.create();
sanXing.create();
// 调用生产小米手机
IFactory iFactory = new UnderXiaoMiFactory();
XiaoMi xiaoMi= (XiaoMi) iFactory.create();
xiaoMi.createShouJi();
}
}
这样既可以完成一个抽象工厂!