【发布时间】:2019-05-13 10:47:22
【问题描述】:
我想更好地了解干净的编码和 OOP。我为此实例创建了一个国际象棋游戏。
现在,基本原则之一是:“不要重复自己”。现在我不知道如何创建一个包含 ChessFigures 列表的 Player 对象,而无需在 createFigures() 方法中重复自己。
在我的逻辑中,Player 类在每场比赛开始时都有 16 个数字。在这里,我重复自己 6 次。在这种情况下,建议的算法是什么?
public class Player {
private ArrayList<Figure> figures = new ArrayList<Figure>(16);
private ColorEnum playerColor;
Player(ColorEnum color){
this.playerColor = color;
createFigures();
}
private void createFigures(){
addFigure(8, PAWN);
addFigure(2, KNIGHT);
addFigure(2, BISHOP);
addFigure(2, ROOK);
addFigure(1, QUEEN);
addFigure(1, KING);
}
private void addFigure(int amount, FigureTypeEnum type){
for(int i = 0; i < amount; i++) {
this.figures.add(new Figure(type, this.playerColor));
}
}
public ArrayList<Figure> getFigures() {
return figures;
}
}
【问题讨论】:
标签: java oop coding-style