Vin*_*C M 10 java oop class-design
这是一个面试问题.
使用面向对象原则设计一个tic tac toe.采访者说他对逻辑不感兴趣,他只想要设计.我给出了如下设计,但我并不完全满意.如果有任何建议/改进,请告诉我.
面试官对两件事非常讲究
我的方法:
类的粗略草图.
interface Player {
Player takeTurn();
void markNextBox();
}
Run Code Online (Sandbox Code Playgroud)
.
public class TicTacToeGameEngine implements GameRule{
@Override
public Boolean isWinner(Game game) {
// Check winner logic
return false;
}
@Override
public Square locateSquareToMark(Game game) {
List<Square> squares= game.getBoard().getFilledSquares();
//go through the list of squares and figure out a square to mark
return square;
}
}
Run Code Online (Sandbox Code Playgroud)
.
public class Computer implements Player {
GameRule g = new TicTacToeGameEngine();
@Override
public void markNextBox() {
g.locateSquareToMark(game);
}
@Override
public Player takeTurn() {
// TODO Auto-generated method stub
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
.
public interface GameRule {
Boolean isWinner(Game game);
Square locateSquareToMark(Game game);
}
Run Code Online (Sandbox Code Playgroud)
//类似于Human的实现
现在我在这个设计中遇到的困难是
任何缺陷,改进设计将不胜感激.
归档时间: |
|
查看次数: |
10242 次 |
最近记录: |