接口与工厂方法模式

本文介绍了Spring中的BeanFactory接口,它是bean管理的核心,通过工厂方法模式创建和管理对象。通过GameFactory和Game类的实例化,展示了如何使用工厂模式在Spring中控制对象实例的创建过程。
摘要由CSDN通过智能技术生成

Spring 是日常开发中必不可少的 bean 容器管理框架,我们将所有的对象都注册成 spring 的 bean,然后交由 spring 容器进行管理,程序员对于 bean 的生命周期可以做到不管不问(意外的情况还是需要定位问题的)。spring 最核心的接口就是 BeanFactory,在了解它之前最好先学习一下最基本的工厂方法模式。打好地基才能修建屹立不倒的摩天大楼哦!

先上代码,最简单的工厂方法模式:

interface Game {
    default String name() {
        return getClass().getSimpleName();
    }
    void playGame();
}

public interface GameFactory {
    Game getGame();
}

class Game1 implements Game {

    @Override
    public void playGame() {
        System.out.println("Game " + name() + " is playing.");
    }
}

class Game1Factory implements GameFactory {

    @Override
    public Game getGame() {
        return new Game1();
    }
}

class Game2 implements Game {

    @Override
    public void playGame() {
        System.out.println("Game " + name() + " is playing.");
    }
}

class Game2Factory implements GameFactory {

    @Override
    public Game getGame() {
        return new Game2();
    }
}

class GamePlayer {
    static void runGame(GameFactory gameFactory) {
        gameFactory.getGame().playGame();
    }

    public static void main(String[] args) {
        runGame(new Game1Factory());
        runGame(new Game2Factory());
    }
}

GameFactory 是工厂的接口,runGame方法接收 GameFactory 类型的参数,然后就可以得到对应的 Game 对象。在 main 中可以看到,Game1Factory 和 Game2Factory 都被向上转型传入 runGame中,并且正确执行了各自的 Game 代码。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值