#525 Реализация логики в сервисе категорий товаров

Компании:
X5
Темы:
JavaКоллекции и обобщенияПрактика

Реализовать логику во всех местах с TODO:

public interface ProductCategoryService {
    /**
     * Метод вызывается 1 раз,
     инициализирует сервис всеми товарами и категориями.
     */
    void init(List<Product> products, List<Category> categories);


    /**
     * Проверяет принадлежность товара к категории,
     может вызываться много раз и часто.
     *
     * @param productId  идентификатор товара
     * @param categoryId идентификатор категории
     * @return {@code true} если товар принадлежит к категории,
    в остальных случаях {@code false}и товар принадлежит к к
     */
    boolean isProductInCategory(Long productId, Long categoryId);


    /**
     * Возвращает список товаров по категории.
     * Товары должны быть отсортированы по имени.
     * Может вызываться много раз и часто.
     *
     * @param categoryId идентификатор категории
     * @return список товаров, принадлежащих к категории
    или пустой список,
    если к категории не принадлежит ни один товар
     */
    Collection<Product> getProductsByCategory(Long categoryId);
}

public interface Category {

    Long getId();

    String getName();

}

public interface Product {

    Long  getId();

    String getName();

    List<Category> getCategories();

}


public class ProductCategoryServiceImpl implements ProductCategoryService {
    /**
     * Метод вызывается 1 раз,
     инициализирует сервис всеми товарами и категориями.
     */
    @Override
    public void init(List<Product> products, List<Category> categories) {
        //TODO  implement
    }


    /**
     * Проверяет принадлежность товара к категории,
     может вызываться много раз и часто.
     *
     * @param productId  идентификатор товара
     * @param categoryId идентификатор категории
     * @return {@code true} если товар принадлежит к категории,
    в остальных случаях {@code false}
     */
    @Override
    public boolean isProductInCategory(Long productId, Long categoryId) {
        //TODO implement
        return false;
    }


    /**
     * Возвращает список товаров по категории.
     * Товары должны быть отсортированы по имени.
     * Может вызываться много раз и часто.
     *
     * @param categoryId идентификатор категории
     * @return список товаров, принадлежащих к категории
    или пустой список,
    если к категории не принадлежит ни один товар
     */
    @Override
    public Collection<Product> getProductsByCategory(Long categoryId) {
        //TODO implement
        return null;
    }
}

Разбор вопроса

Ментор
Ответь как на реальном собеседовании. Я задам уточняющие вопросы, а затем сравню твой ответ с эталонным и покажу точность в %.
Войди, чтобы начать диалог Ментор ведёт диалог по текущему вопросу и учитывает предыдущие сообщения.
Войти