本文主要介绍抽象工厂模式,和上文介绍的工厂方法模式的区别是:工厂方法模式是针对一个产品来构建,而抽象工厂模式则是针对多个产品来构建。java
下面我直接上代码来阐述抽象工厂模式的具体实现:框架
public final class Factory { public final static Product createProduct(String name){ switch(name){ case "手机":{ return new Mobile(); } case "平板":{ return new Pad(); } case "电脑":{ return new Computer(); } } return null; } }
public abstract class Product { public abstract void execute(); }
public class Mobile extends Product { @Override public void execute() { System.out.println("这是手机!"); } }
public class Pad extends Product { @Override public void execute() { System.out.println("这是平板!"); } }
public class Computer extends Product { @Override public void execute() { System.out.println("这是电脑!"); } }
public class Client { public static void main(String[] args) { Product mobile = Factory.createProduct("手机"); mobile.execute(); Product pad = Factory.createProduct("平板"); pad.execute(); Product computer = Factory.createProduct("电脑"); computer.execute(); } }
在咱们经常使用的框架如:Sping、Hibernate等框架都大量运用了抽象工厂模式。ide
应用场景:当有多个对象须要实例化的时候,咱们就能够考虑建立一个工厂来统一管理这些对象。
code