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 代码。