例如,在为游戏设计 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 的对象,其中包含实际棋盘的 2D 数组。
第一个示例要求开发人员创建对象并传递它,并要求开发人员实际知道底层数据结构是什么。
然而,第二个要求开发人员只传递数字。这将要求开发人员使用它来维护自己的数据结构。
您会考虑哪种方法更好的设计?有小费吗?