所以我有一个名为Game的类,我需要根据会话ID从数据库中检索Game的几个对象,所以我有这个方法:
public ArrayList<Game> getGamesBySession好的,但是我必须在那里传递一个参数,这样我才能知道我想要检索哪个会话的游戏,并且我有两种可能性。我可以传递一个int,也可以传递一个具有id属性的Session对象,然后使用session.getID()。最终,两者的结果基本上是一样的,但我想知道的是另一件事。
我的问题是,哪种方法更好,如果我传递一个对象,这是否意味着Game与Session高度耦合并违反了GRASP
发布于 2013-06-20 16:34:47
这要看情况,session.ID只是一个整数吗?如果是这样,我宁愿传递整个会话,因为getGamesBySession(session)比getGamesBySession(int)清晰得多。
但是,您也可以考虑将int封装到一个SessionIdentifier对象中,这会赋予该值更多的语义含义。getGameBySession(SessionIdentifier)同样清晰,它可以防止你从其他地方传入一些随机的int。
https://stackoverflow.com/questions/17203068
复制相似问题