interface Game
{
boolean move();
}
interface GameFactory
{
Game getGame();
}
class Checkers implements Game
{
private int moves = 0;
private static final int MOVES = 3;
public boolean move()
{
System.out.println("Cheacker move " + moves);
return ++moves != MOVES;
}
}
class CheckersFactory implements GameFactory
{
public Game getGame()
{
return new Checkers();
}
}
class Chess implements Game
{
private int moves = 0;
private static final int MOVES = 4;
public boolean move()
{
System.out.println("Chess move " + moves);
return ++moves != MOVES;
}
}
class ChessFactory implements 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(new CheckersFactory());
playGame(new ChessFactory());
}
}
在相同的棋盘上面下国际象棋和西洋跳棋(工厂模式)
最新推荐文章于 2017-10-25 15:27:14 发布