이너클래스 소스 분석이요
차오름
interface Game {
boolean move();
}
interface GameFactory {
Game getGame();
}
class Checkers implements Game {
private Checkers() {
}
private int moves = 0;
private static final int MOVES = 3;
public boolean move() {
System.out.println(Checkers move + moves);
return ++moves != MOVES;
}
public static GameFactory factory = new GameFactory() {
public Game getGame() {
return new Checkers();
}
};
}
class Chess implements Game {
private Chess() {
}
private int moves = 0;
private static final int MOVES = 4;
public boolean move() {
System.out.println(Chess move + moves);
return ++moves != MOVES;
}
public static GameFactory factory = new GameFactory() {
public Game getGame() {
return new Chess();
}
};
}
public class Games {
public static void playGame(GameFactory factory) {
Game s = factory.getGame();
while (s.move())
;
}
public static void main(String[] args) {
playGame(Checkers.factory);
playGame(Chess.factory);
}
}
/*
* Output: Checkers move 0
* Checkers move 1
* Checkers move 2
* Chess move 0
* Chess move 1
* Chess move 2
* Chess move 3
*/// :~
이렇게 배웠는데 소스를 모르겠어요
최대한 쉽게 설명 좀 주석을 달아 주셔서 해주세요
부탁드릴게요