241-327_Deev_ASD/lab-3/quiz_json_adapter.h

33 lines
1.6 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
* quiz_json_adapter.h — Конкретный адаптер (Adapter) паттерна «Адаптер»
*
* QuizJsonAdapter — это «переводчик» между двумя несовместимыми
* интерфейсами:
*
* Adaptee (что есть): QJsonObject / QJsonArray — формат Qt-библиотеки
* Target (что нужно): IQuizAdapter — интерфейс нашего приложения
*
* Именно здесь выполняется десериализация: каждое поле QJsonObject
* извлекается по строковому ключу и записывается в соответствующее
* поле C++-объекта Quiz.
*
* Зависимость на уровне заголовков: QuizJsonAdapter наследует
* IQuizAdapter, значит нужен только этот include — всё остальное
* (QJsonObject, QJsonArray, Quiz) уже включено транзитивно.
*/
#pragma once
#include "iquiz_adapter.h"
class QuizJsonAdapter : public IQuizAdapter
{
public:
/*
* override явно указывает компилятору, что метод переопределяет
* виртуальный метод базового класса. Если сигнатура вдруг не совпадёт —
* получим ошибку компиляции, а не молчаливый баг.
*/
Quiz toQuiz (const QJsonObject &json) const override;
QList<Quiz> toQuizList(const QJsonArray &json) const override;
};