← Назад к вопросам

Как назовешь репозиторий в котором будешь получать избранные товары пользователя?

1.8 Middle🔥 131 комментариев
#JavaScript Core

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI3 апр. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Название репозитория для избранных товаров

Для репозитория, который работает с избранными товарами пользователя, я бы использовал FavoritesRepository или UserFavoritesRepository. Это соответствует паттерну Repository Pattern, где имя класса явно отражает его ответственность.

Почему именно так?

Принцип единственной ответственности

Репозиторий должен отвечать только за доступ к данным избранных товаров. Имя должно быть специфичным и ясно говорить о том, что здесь содержится.

Паттерн Repository

Это паттерн проектирования, который инкапсулирует логику доступа к данным. Репозиторий скрывает детали реализации (БД, API) и предоставляет чистый интерфейс для бизнес-логики.

// Плохо - неясное имя
class UserDataAccess {
  async getFavorites(userId) {}
}

// Хорошо - явное и специфичное имя
class FavoritesRepository {
  async getFavoritesByUserId(userId) {}
  async addToFavorites(userId, productId) {}
  async removeFromFavorites(userId, productId) {}
  async isFavorite(userId, productId) {}
}

Использование в коде

// Инъекция зависимости
class ProductService {
  constructor(favoritesRepository) {
    this.favoritesRepository = favoritesRepository;
  }

  async getFavoriteProducts(userId) {
    return this.favoritesRepository.getFavoritesByUserId(userId);
  }

  async toggleFavorite(userId, productId) {
    const isFavorite = await this.favoritesRepository.isFavorite(
      userId,
      productId
    );
    
    if (isFavorite) {
      return this.favoritesRepository.removeFromFavorites(userId, productId);
    } else {
      return this.favoritesRepository.addToFavorites(userId, productId);
    }
  }
}

Альтернативные варианты

UserFavoritesRepository - если нужно подчеркнуть, что это данные конкретного пользователя.

FavoriteProductsRepository - если в будущем могут быть избранные категории, бренды и т.д.

Но FavoritesRepository - оптимальный выбор для простоты и ясности.

Как назовешь репозиторий в котором будешь получать избранные товары пользователя? | PrepBro