это простой сценарий с азартными играми.
есть игрок и игральные кости.игрок может бросить кубик. затем значение кости изменится
. Для вышеописанного сценария я создал диаграмму классов
, как показано на рисункеприведенная выше диаграмма
игрок может бросить кости, он реализован в 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()
метод?