5. 工厂方法模式
1.抽象产品类
public abstract class AbstractProduct { }
2.抽象工厂类
public abstract class AbstractFactory { public abstract AbstractProduct createProduct(); }
3.具体产品类
public class Product extends AbstractProduct { }
4.具体工厂类
public class Factory extends AbstractFactory { @Override public AbstractProduct createProduct() { // TODO Auto-generated method stub return new Product(); } }
5.客户程序
public class Client { //工厂方法,与抽象工厂的最主要区别可能就在此,单个对象的维度 public AbstractProduct getProduct(AbstractFactory factory){ return factory.createProduct(); } }
6.应用
public class App { public static void main(String[] args) { Client client=new Client(); AbstractProduct product = client.getProduct(new Factory()); } }
本人倡导的讲解方式:代码示例[学以致用,不仅要知道理论,还要知道理论怎么付诸实践],
文字讲解[不仅知道要怎么用,还要知道是怎么回事],
画图讲解[有图有真相,用图的形式将代码嵌入到理论中,整体理解]