java工厂模式编写小游戏
本文带你学习java工厂设计模式的简单设计方法。Java工厂设计模式是一个很实用的软件设计方法,为了增加
学习兴趣,我们利用该模式编写一个简单的游戏框架,模拟抛硬币和投骰子的功能。一听说框架,可能很多初学者
会被吓到,放心,本框架只有60+行代码,没有任何难度,绝逼不会难到你!
下面开始教程:
首先创建两个接口,代码如下:
import java.util.*;
interface Game{
public void startGame();
}
interface GameFactory{
Game getGame();
}
然后是接口的实现部分。这部分我们实现的抛硬币的具体实现过程。Random对象产生随机数。
rand对象可以调用方法nextInt(2),随机产生一个0或1的数(模拟硬币正反面)。
如果是1,控制台输出”Up!“(正面),否则输出”Down!“(反面)。
class CoinGame implements Game{
Random rand = new Random();
public void startGame(){
System.out.println("CoinGame Start!");
int i = rand.nextInt(2);
if(i==1)
System.out.println("Up!");
else
System.out.println("Down!");
}
}
CoinGameFactory类是Game的工厂类,所谓工厂,顾名思义就是生产什么东西的。这里我们用它生产对象,只是我们具体化了该工厂,让它为我们
生产Coin对象。
class CoinGameFactory implements GameFactory{
public Game getGame(){
return new CoinGame();
}
}
以上是抛硬币部分的实现,用同样的方法,我们完成投骰子游戏:
class DiceGame implements Game{
Random rand = new Random();
public void startGame(){
System.out.println("DiceGame Start!");
int i = rand.nextInt(6);
switch(i){
case 0:System.out.println(i+1);
break;
case 1:System.out.println(i+1);
break;
case 2:System.out.println(i+1);
break;
case 3:System.out.println(i+1);
break;
case 4:System.out.println(i+1);
break;
case 5:System.out.println(i+1);
break;
default:System.out.println("Error!");
}
}
}
class DiceGameFactory implements GameFactory{
public Game getGame(){
return new DiceGame();
}
}
最后编写游戏的测试方法playGame(GameFactory fact),该方法接受一个GameFactory对象,然后通过该对象得到我们的游戏,并开始游戏。
public class myGame{
public static void playGame(GameFactory fact){
Game game = fact.getGame();
game.startGame();
}
public static void main(String[] args){
playGame(new CoinGameFactory());
playGame(new DiceGameFactory());
}
}
游戏测试的结果如图:
playGame(new CoinGameFactory());
playGame(new DiceGameFactory());
这两行代码体现了我们可以根据需要创建我们想玩的游戏(抛硬币或者投骰子)。
以上就是教程的全部内容,写的比较粗糙,感谢您的宽容!