0
所以,我有一個代表遊戲板(4x4)的類,每個空間都是一個die的面值,由一個數組列表表示。我應該實施工廠方法來生成電路板。在java中用工廠方法實現的困難
public class Board {
static ArrayList<Die> board = new ArrayList<Die>();
public static Board makeFixedBoard(DiceManager dice) {
for (int i = 0; i < 16; i++) {
//add faces
}
return new Board();
}
}
但是,我很難理解如何實現工廠方法。在這裏,我的迴歸是一個新的董事會,但這只是創建一個新的空白板,而不是我生成的板。
這是模具類
public class Die {
char[] faces = new char[6];
char facevalue;
public Die(char side1, char side2, char side3, char side4, char side5, char side6){
faces[0] = side1;
faces[1] = side2;
faces[2] = side3;
faces[3] = side4;
faces[4] = side5;
faces[5] = side6;
facevalue = faces[0];
}
public void roll() {
int roll = 0 + (int)(Math.random() * 6);
facevalue = faces[roll];
}
public char getValue() {
return facevalue;
}
請讓你的問題更清楚你實際想要做什麼? – ankit
該板類中的此方法應該返回它在makeFixedBoard()中構建的Board對象。但是,它是返回一個空白板。 – rhl13
它返回一個空白板,因爲你寫了返回新的Board(),它將創建一個新的板子實例,並將它返回給調用方法。如果你想返回一個填充板,那麼你必須在你的for循環之上的某個地方創建你的新實例,然後設置值 – ankit