设计模式之抽象工厂模式
抽象工厂解决的是一个系列的产品创建问题。抽象工厂模式是工厂方法模式的升级版本,工厂方法模式只生产一个等级的产品,而抽象工厂模式可生产多个等级的产品。
1、抽象产品
public interface BasketBall { void play(); }
public interface FootBall { void play(); }
2、具体产品
public class SpaldingBasketBall implements BasketBall{ @Override public void play() { System.out.println("打斯伯丁篮球"); } }
public class SpaldingFootball implements FootBall { @Override public void play() { System.out.println("踢斯伯丁足球"); } }
public class NikeBasketBall implements BasketBall{ @Override public void play() { System.out.println("打耐克篮球"); } }
public class NikeFootBall implements FootBall{ @Override public void play() { System.out.println("踢耐克足球"); } }
3、抽象工厂
public interface BallFactory { BasketBall createBasketBall(); FootBall createFootBall(); }
4、具体工厂
public class SpaldingBallFactory implements BallFactory{ @Override public BasketBall createBasketBall() { return new SpaldingBasketBall(); } @Override public FootBall createFootBall() { return new SpaldingFootball(); } }
public class NikeBallFactory implements BallFactory{ @Override public BasketBall createBasketBall() { return new NikeBasketBall(); } @Override public FootBall createFootBall() { return new NikeFootBall(); } }
5、测试
public class Test_ { public static void main(String[] args) { BallFactory sb = new SpaldingBallFactory(); sb.createBasketBall().play(); sb.createFootBall().play(); BallFactory nk = new NikeBallFactory(); nk.createBasketBall().play(); nk.createFootBall().play(); } }