工廠方法設計模式2

爲什麼要添加這樣的間接性

創建框架

假設你正在創建一個對弈遊戲系統,例如,在相同的棋盤上下國際象棋和西洋跳棋

/**
 * @Description:
 */
public class 工廠方法設計模式2 {
    public static void playGame(GameFactory gameFactory){
        Game game = gameFactory.getGame();
        while (game.move()){
            ;
        }
    }

    public static void main(String[] args) {
        playGame(new CheckersFactory());
        playGame(new ChessFactory());
    }
}


interface Game{
    Boolean move();
}
interface GameFactory{
    Game getGame();
}

class Checkers implements Game {
    private int moves=0;
    public static final int MOVES=3;
    @Override
    public Boolean move() {
        System.out.println("Checkers moves:" +moves);
        return  ++moves != MOVES;
    }
}
class CheckersFactory implements GameFactory{
    @Override
    public Game getGame() {
        return new Checkers();
    }
}

class Chess implements Game {
    private int moves=0;
    public static final int MOVES=4;

    @Override
    public Boolean move() {
        System.out.println("Chess moves:"+moves);
        return ++moves != MOVES;
    }
}
class ChessFactory implements GameFactory {
    @Override
    public Game getGame() {
        return new Chess();
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章