工厂方法模式(Factory Method),定义一个创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实列化延迟到其子类。
示意图代码如下:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 public abstract class Product { 2 public abstract void show(); 3 }
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 public class ConcreteProduct extends Product { 2 3 @Override 4 public void show() { 5 System.out.println("ConcreteProduct...show...."); 6 7 } 8 9 }
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 public abstract class Creator { 2 public abstract Product factoryMethod(); 3 }
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 public class ConcreteCreator extends Creator { 2 3 @Override 4 public ConcreteProduct factoryMethod() { 5 return new ConcreteProduct(); 6 7 } 8 9 }
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 public class TestFactory { 2 public static void main(String[] args) { 3 Creator c = new ConcreteCreator(); 4 ConcreteProduct pro = (ConcreteProduct) c.factoryMethod(); 5 pro.show(); 6 } 7 }