假设有两个通过某些关系相关的类。例如,一个
一个解决方案是创建一个唯一目的是跟踪
我问这个问题是因为我在编写Java版的棋盘游戏。我正在思考棋子与棋格以及棋子与玩家之间的关系。如果在上面的例子中,让
在这种情况下,标准做法是什么?
Student
维护他所选修的Class
列表,每个Class
都有一个学生名单。我不希望让 Student
直接能够修改其 Class
列表,因为每次修改都需要进行类似于修改 Class
的 Student
名单的操作,反之亦然。一个解决方案是创建一个唯一目的是跟踪
Class
-Student
关系的类,比如说 Registrar
。但是如果 Student
中的某个方法需要知道它的 Class
列表,那么就需要将 Registrar
传递给 Student
。这似乎不太好。看起来 Student
不应该访问 Registrar
,因为在那里它也可以访问其他Student
。我可以想到一种解决方案,创建一个类作为 Student
和 Registrar
之间的中介者,只向 Student
显示它需要知道的内容,但这可能有点过头了。另一个解决方案是从 Student
中删除任何需要访问其类的方法,将其放在 Registrar
或其他可以访问 Registrar
的类中。我问这个问题是因为我在编写Java版的棋盘游戏。我正在思考棋子与棋格以及棋子与玩家之间的关系。如果在上面的例子中,让
Student
访问 Registrar
是不允许的,那么像 Piece
这样的类是否可以访问棋盘 Board
,因为 Piece
需要查看周围信息以决定移动是否有效?在这种情况下,标准做法是什么?