Передача параметров Java в соответствии с GRASP
Итак, у меня есть класс под названием Game
и мне нужно получить несколько объектов Game
из базы данных на основе их идентификатора сеанса, поэтому у меня есть этот метод:
public ArrayList<Game> getGamesBySession
Хорошо, но я должен передать туда параметр, чтобы знать, какие сеансы игры я хочу получить, и у меня есть две возможности. Я могу либо передать int
или я могу передать объект Session
который имеет атрибут id
а затем использовать session.getID()
, В конце концов, и то и другое приведет к одному и тому же, но мне интересно другое.
Мой вопрос: какой подход лучше, и если я передам объект, это будет означать, что Game
высокая в сочетании с Session
и нарушает GRASP?
1 ответ
Это зависит от того, является ли session.ID просто int? Если это так, я бы предпочел передать весь сеанс, так как getGamesBySession(session)
намного яснее, чем getGamesBySession(int)
,
Тем не менее, вы могли бы также рассмотреть обёртывание int в SessionIdentifier
объект, который придает значению немного более смысловой смысл. getGameBySession(SessionIdentifier)
в равной степени ясно и помешает вам передать какой-то случайный int из другого места...