1

所以我有一个名为的类Game,我需要Game根据它们的会话 ID 从数据库中检索几个对象,所以我有这个方法:

public ArrayList<Game> getGamesBySession

好的,但我必须在那里传递一个参数,这样我才能知道我想要检索哪个会话的游戏,并且我有两种可能性。我可以传递一个int或者我可以传递一个Session具有属性的对象,id然后使用session.getID(). 最后,两者基本上都会产生相同的结果,但我想知道的是别的东西。

我的问题是,这是一种更好的方法,如果我传递一个对象,这是否意味着它与 GRASPGame高度耦合Session并违反了GRASP

4

1 回答 1

1

这取决于, session.ID 只是一个 int 吗?如果是这样,我宁愿通过整个会话,因为getGamesBySession(session)它比getGamesBySession(int).

但是,您也可以考虑将 int 包装到一个SessionIdentifier对象中,这为该值赋予了更多的语义含义。getGameBySession(SessionIdentifier)同样清楚,并且会阻止您从其他地方传入一些随机整数...

于 2013-06-20T08:34:46.880 回答