Передача параметров 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 из другого места...

Другие вопросы по тегам