В обычной речи «структура объекта» и «устройство объекта» часто слипаются. Но если строить схему для алгоритмов, их можно развести так:
Структура объекта — из каких частей он состоит и как эти части связаны.
Устройство объекта — как эта структура работает, какие правила доступа, изменения и поведения у неё есть.
То есть:
структура = состав + связи
устройство = состав + связи + правила работы
На массиве:
массив = [7, 3, 9, 1, 5]
Структура массива
Структура отвечает на вопрос:
Что внутри и как расположено?
У массива есть:
элементы
индексы
порядок
длина
позиции
То есть можно сказать:
массив — это последовательность элементов,
где каждый элемент находится на определённой позиции
и доступен через индекс.
Это структура.
Устройство массива
Устройство отвечает на вопрос:
Как это работает?
Что с этим можно делать?
Какие правила у этой формы?
Например:
элемент можно прочитать по индексу
элемент можно изменить по индексу
индексы идут от 0 до length - 1
доступ по индексу обычно быстрый
вставка в середину может требовать сдвига элементов
удаление из середины может требовать сдвига элементов
размер может быть фиксированным или изменяемым — зависит от конкретной реализации
Вот это уже устройство.
Коротко
Структура массива:
[индекс] → [элемент]
[индекс] → [элемент]
[индекс] → [элемент]
Устройство массива:
можно обратиться по индексу
можно заменить значение
можно пройти слева направо
можно искать значение
при вставке элементы могут сдвигаться
Очень важное различение
Структура ближе к картинке объекта.
Вот есть элементы.
Вот есть позиции.
Вот есть порядок.
Устройство ближе к механике объекта.
Как получить элемент?
Как изменить элемент?
Что происходит при добавлении?
Что происходит при удалении?
Что быстро?
Что медленно?
Пример не из программирования
Допустим, велосипед.
Структура велосипеда:
рама
колёса
руль
цепь
педали
тормоза
Устройство велосипеда:
педали вращают цепь
цепь передаёт движение на колесо
руль меняет направление
тормоза замедляют колесо
То есть структура говорит: что есть и как соединено.
Устройство говорит: как это всё действует.
Для схемы
ОБЪЕКТ
1. Структура:
- из чего состоит
- какие части есть
- как части расположены
- как части связаны
2. Свойства:
- что присуще этой структуре
- какие параметры у неё есть
- какие ограничения у неё есть
3. Характеристики:
- что можно сказать о конкретном состоянии объекта сейчас
4. Операции:
- что можно делать с объектом
5. Устройство:
- как структура + свойства + операции работают вместе
То есть устройство шире, чем структура.
Структура — это скелет.
Устройство — это скелет плюс механика работы.
На массиве:
Структура:
массив состоит из элементов, расположенных по индексам.
Свойства:
есть порядок, есть длина, есть доступ по индексу.
Характеристики:
длина = 5, минимум = 1, максимум = 9.
Операции:
прочитать, изменить, пройти, найти, отсортировать.
Устройство:
массив хранит элементы в порядке, позволяет обращаться к ним по индексу,
а некоторые операции требуют прохода или сдвига элементов.