这是一个关于赌博的简单场景。
有一个赌徒和骰子。赌徒可以掷骰子。然后骰子的值会改变
对于上述场景,我创建了这个类图
如上图
赌徒可以掷骰子, 在赌徒掷骰子时在Gambler.roll()方法中实现
,骰子值在变化,在Dice.roll()方法中实现
使用如下所示的java代码实现上述场景请注意此代码为伪代码,语法可能有误
class Gambler{
private Dice dice;
Gambler(Dice dice){
this.dice = dice;
}
public void roll(){
dice.roll();//delegation call
}
}
/* --------------------------- */
import java.util.Random;
class Dice{
private int faceValue;
public int getFaceValue(){
return faceValue;
}
public void roll(){
//get random value between 1 ,6
Random random = new Random();
this.faceValue = random.nextInt((6 - 1) + 1) + 1;
}
}
我想知道
我的实现是否符合 OOAD 最佳实践并且不违反封装?
特别是在将掷骰子委托Gambler给Dice班级时是否正确Gambler有roll()方法?
holdtom
料青山看我应如是
相关分类