Базовые понятия: классы, объекты, методы и свойства

4. Азбука Комментариев нет

Система MajorDoMo объединяет в себе различные компоненты - контроллер, датчики, реле и др. -  действие многих из которых сопряжено с чтением либо изменением каких-либо данных.

Для организации эффективного обмена данными между различными частями системы была создана объектная модель. Данная модель во многом соответствует парадигме Объектно Ориентированного Программирования (ООП) и людям, знакомых с данной парадигмой, не составит труда разобраться в имеющейся модели, но знание принципов ООП совсем не обязательно, т.к. встроенная в систему модель достаточно упрощённая и может применяться без глубокого знания какого-либо языка программирования.

Ниже описаны основные составляющие этой модели.

Классы

Класс объединяет определенную группу объектов и определяет определенные свойства, которые должны присутствовать у всех объектов данного класса.
Например, Класс - "датчики движения".Состоит из Объектов - "датчик движения в коридоре", "датчик движения в спальне" и т.д.

Класс не является объектом и не может сам по себе содержать значения этих свойств, он лишь описывает признаки и варианты поведения объектов.  "Датчики движения" могут иметь описание свойства "Статус" (сработал датчик или нет), но непосредственное значение может быть установлено только для конкретного объекта, но не для класса.

Важное свойство классов это возможность создания под-классов, наследующих все свойства и методы "родительского" класса, но при этом способные обладать собственными свойствами и методами. Либо имеющие свои особенные реализации "родительских" методов.

Пример:

Объекты

Объект представляет собой состояние реального (или виртуального) объекта.
Например, Объект "Датчик температуры в детской"
Хорошее видео об Объектах в MajorDoMo.

Свойства объекта могут иметь конкретные значения,например:
-Свойство "статус" ,
-Свойство "температура" и т.д.
Кроме того, в самом объекте могут быть заданы свойства, которые дополняют набор свойств класса, к которому объект относится.
Так же, для объекта может быть задана собственная реализация методов, описанных в классе.

Пример:

Объект, относящийся к классу, который, в свою очередь, является под-классом, наследуюет свойства и методы всех родительских классов.

Свойства

Свойство -- это конкретный параметр, описывающий состояние объекта. Как уже было написано выше, классы могут лишь описывать свойства (название, описание и т.п.), но значение свойства может быть установлено только для какого-то конкретного объекта.
Видео-пример о том как работать со свойствами в MajorDoMo.

Пример (описание свойств класса объектов):

Пример (установка/чтение свойста объекта):

Методы

Методы представляют собой описание возможных действий объекта (или действий над объектом).

Например, у нас есть класс "Окна"  - который может иметь методы "Открыть" и "Закрыть".
Т.е. все объекты класса "Окна" так же будут иметь этот метод и мы можем открыть Объект "Окно в десткой" вызвав метод "Окно в детской.Открыть".

Сама реализация метода представляет собой сценарий на языке программирования PHP. В данном случае частью сценария может быть установка свойства "Статус" в состояние "Открыта".

Пример (метод объекта):

Пример (код метода):

Пример (вызов метода):

--

Объектную систему особенно удобно использовать в том случае, когда у нас есть ряд однотипных объектов (например датчиков или исполнительных механизмов), обладающих одинаковыми свойствами и вариантами поведения. При этом мы можем задать один класс и добавить лишь объекты, отличающиеся названиями или какими-то отдельными особенностями, но при этом иметь всего одну реализацию сценария поведения, описанную в методе класса.

Кроме того, многие из имеющихся модулей позволяют указывать "привязку" каких-либо параметров к свойствам либо методам определённых объектов, что позволяет на уровне объектов иметь актуальное состояние всех вспомогательных систем.

Пример (привязка свойства/метода к пункту меню управления):

Поделитесь в соц сетях

Теги: