Nano Hash - криптовалюты, майнинг, программирование

Размещение сервисных методов

Предположим, у меня есть два класса обслуживания со следующими методами:

  • GroupService
    • createGroup()
    • удалить группу()
    • группа обновлений()
    • найтигруппу()
  • UserService
    • createUser()
    • удалить пользователя ()
    • обновитьпользователя()
    • найтипользователя()

Сейчас я думаю об эстетике этих занятий. Представьте, что мы хотим реализовать метод, который ищет всех пользователей определенной группы. Какой класс обслуживания отвечает за такой метод?

Я имею в виду, что возвращаемое значение — это пользователь (или, может быть, набор пользователей), но параметр (что означает имя группы) — это группа. Итак, в какой класс обслуживания лучше поместить этот метод?

13.11.2011

Ответы:


1

Я бы создал еще один класс под названием «Членство» и имел бы методы, которые ищут пользователей в группах или группах, к которым принадлежит конкретный пользователь. Я склонен ошибаться в сторону большого количества маленьких классов, а не небольшого количества больших классов.

14.11.2011

2

Ни то, ни другое. Метод принадлежит классу Group, который возвращается функциями createGroup() и findGroup(). Однако если вам подходят только эти две службы, используйте GroupService, потому что все аргументы GroupService получают имена групп в качестве аргументов. Чаще всего варьируется возвращаемый тип методов, а не аргумент.

13.11.2011
  • Что происходит, когда вам нужно findUsersByGroupAndManager(String groupName, String managerName)? 14.11.2011

  • 3

    Я бы предложил Пользовательскую службу, поскольку вы запрашиваете пользовательские сущности. Служба должна ограждать потребителей от деталей реализации (механизм сохранения и т. д.), если пользователи возвращаются из групповой службы, ей потребуется знание того, как пользователи сохраняются.

    13.11.2011

    4

    Зависит от вашего мышления. Если вы хотите искать пользователей с определенной группой, то на самом деле вы хотите выполнить поиск пользователей с определенными критериями, поэтому лучше поместить его в службу пользователей, но если вы хотите получить некоторые свойство из группы, лучше поместить его в групповой сервис, вы должны показать, какова ваша подпись класса и их ответственность.

    13.11.2011
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..