當爲遊戲設計一個API時。將數據結構保持私有性還是將結構返回給開發人員/誰曾經使用API被視爲優秀設計?所以這裏是一個例子。兩個相反的API遊戲設計
假設我有一個棋盤遊戲API。以下兩個例子中的哪一個會被認爲是「更好」?請注意,就這個問題而言,我認爲棋盤的大小可以變化,並由開發者控制。
public void createboard(ChessBoard board);
public void move(Player playerNumber, Move move);
或
public void createboard(int x, int y);
public void move(Player playerNumber, int from[], int to[]);
據我瞭解,有可能是沒有更好的答案,它只是一個設計決策的問題。我只是想看看其他人的想法,或者是否有任何人有任何有用的提示。
基本上,我假設遊戲包含一個名爲ChessBoard的對象,該對象包含實際電路板的二維數組。
第一個示例要求開發人員創建對象並將其傳遞,並要求開發人員實際知道底層數據結構是什麼。
但是,第二個要求開發人員只通過數字。這會要求開發者使用它來維護自己的數據結構。
您會考慮哪種方法更好的設計?有小費嗎?