设计模式之抽象工厂模式

抽象工厂解决的是一个系列的产品创建问题。抽象工厂模式是工厂方法模式的升级版本,工厂方法模式只生产一个等级的产品,而抽象工厂模式可生产多个等级的产品。

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();
    }
}

 

posted @ 2020-12-11 14:45  _Gateway  阅读(66)  评论(0编辑  收藏  举报