Constructiva
Терминальный вариант графического ядра
Краткое описание модулей
Требования
mvp
Для сложных объектно-ориентированных систем хорошо зарекомендовал себя подход по разделению функциональной части системы от ее пользовательского интерфейса. Довольно распространенным является подход на основе модели Model/View/Controller. Цель этой модели обеспечить отделение прикладного объекта (Model) от способа его представления его пользователю (View) и от способа воздействия на него (Controller). Данная модель является наиболее подходящей концепцией для создания конструкторов. Основным понятием конструктора являются элементы, из которых создаются необходимые пользователю конфигурации. Элементы – это абстракция неких объектов обладающих свойствами и функциональностью определенной над этими свойствами. Для визуализации свойств, присущих элементам используются виды или репрезентации. У одного элемента может быть несколько видов. Для изменения свойств элемента используется два пути, первый через специальный редактор свойств, позволяющий наиболее полно и точно настроить объект и с помощью интерактивного воздействия пользователем с помощью мыши или клавиатуры на репрезентацию объекта. ViewController может не присутствовать в View, поэтому он помечен пунктирной линией.
Таким образом библиотека должна содержать ключевых понятия:
- Элемент содержащий свойства и функциональность (Element)
- Свойства элемента (Property)
- Вид элемента (View)
- Контроллер свойств элемента (Property Controller & View Controller)
Элементы должны поддерживать иерархическое владение по схеме: один родитель (Parent) – несколько детей (Child). В вершине дерева владения стоит корневой элемент (Root) с нулевым родителем. Виды также обладают иерархическим владением, дерево владения видом должно совпадать с деревом владения элементов.