所以我有一个叫做Game
的类,我需要根据它们的会话ID从数据库中检索Game
的几个对象,所以我有这个方法:
public ArrayList<Game> getGamesBySession
好的,但我必须在那里传递一个参数,这样我就知道我想要检索哪个会话的游戏,我有两种可能性。我既可以传递一个int
,也可以传递一个具有id
属性的Session
对象,然后使用session.getID()
。最后,两者的结果基本相同,但我想知道的是另一件事。
我的问题是,这是一个更好的方法,如果我传递一个对象,这是否意味着Game
与Session
高耦合并且违反了GRASP?
这取决于会话。ID只是一个整型吗?如果是,我宁愿传递整个会话,因为getGamesBySession(session)
比getGamesBySession(int)
更清晰。
但是,您也可以考虑将int封装到SessionIdentifier
对象中,这样可以为该值提供更多的语义含义。getGameBySession(SessionIdentifier)
同样清楚,可以防止您从其他地方传入一些随机int…