🏠Home
Представим, что ты строишь дом, и у тебя есть целая команда специалистов, у каждого из которых своя задача. Вот как наши термины из программирования соответствуют роли каждого члена команды в строительстве дома:
Data
Здесь хранятся и управляются данные, из которых строится дом. Это как хранение материалов и данных о доме.
Data Model (Модель данных):
Это чертеж или модель материалов для дома. Например, чертежи окон, дверей, формы стен и т.д. Она описывает, как должны выглядеть все части дома.
import '../domain/entities/product_entity.dart';
class ProductModel extends Product {
ProductModel({
required super.name,
required super.price,
required super.category,
required super.description,
super.isLiked,
super.quantity = 1,
});
// fromJson и toJson для работы с данными
factory ProductModel.fromJson(Map<String, dynamic> json) {
return ProductModel(
name: json['name'],
price: json['price'],
category: json['category'],
description: json['description'],
isLiked: json['isLiked'] ?? false,
quantity: json['quantity'] ?? 1,
);
}
Map<String, dynamic> toJson() {
return {
'name': name,
'price': price,
'category': category,
'description': description,
'isLiked': isLiked,
'quantity': quantity,
};
}
}
Repositories Implementation (Реализация репозиториев):
Это как логистическая служба, которая знает, как и откуда доставить нужные материалы для строителей. Здесь описывается, как именно мы будем доставлять данные из источников данных в приложение.
Data Source (Источник данных):
Это склад материалов для строительства. Например, склад с кирпичами, досками, гвоздями. Это место, где мы берем сырье (данные) — будь то данные с сервера, из базы данных или временное хранилище в приложении.
Domain
Это уровень, где определяется, что и как должно быть построено.
Entities (Сущности):
Это основные объекты, описывающие дом. Например, дом как объект может иметь комнаты, стены, окна. Это набор качеств, которые обязательно должны быть у нашего дома (наше представление о доме).
Repositories (Репозиторий):
Это интерфейс (инструкция) для логистической службы, описывающий, какие данные нам нужно доставить. Например, «доставь окна, двери и кирпичи для стен». Это говорит, что должно быть, но не говорит, как именно.
Use Cases (Сценарии использования):
Это задачи, которые нужно выполнить, чтобы дом был построен. Например, «построить стену», «вставить окна», «накрыть крышу». Они определяют пошагово, какие задачи нужны для конечного результата.
Presentation Layer (Презентация, то, что видит клиент)
Это уровень, где мы показываем готовый дом клиенту.
Screens (Экраны):
Это комнаты в доме, в которые можно войти и посмотреть, как все выглядит. Например, гостиная, спальня, кухня — каждая из которых показывает конечный результат на экране.
Widgets (Виджеты):
Это отдельные элементы в комнатах, которые создают общее впечатление от дома, такие как диваны, столы, картины. Виджеты — это визуальные блоки, из которых состоят экраны.
Bloc (Логика отображения):
Это архитектор, который управляет тем, как элементы появляются на экранах и обновляются при изменениях. Например, если открывается дверь или включается свет, Bloc контролирует, что и как должно измениться для пользователя.
Last updated