Объект который является частью другого обьекта

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

Ответить
maleha
Сообщения: 19
Зарегистрирован: Пн окт 24, 2016 7:39 pm
Благодарил (а): 3 раза
Поблагодарили: 1 раз

Объект который является частью другого обьекта

Сообщение maleha » Пт мар 17, 2017 12:05 am

Можно ли реализовать вложенность объектов.Скажем в каждой комнате есть модуль на 8 реле. Он управляется одним ESP8266. Регистрируем объект с именем скажем MAC модуля и свойством ип адресс устройсва для дальнейшей его идентификации. В этом объекте создаем 8 других объектов который и будут непосредственно самими реле. Уже в этом обьекте будем управлять свойствами включения а также другими свойствами (например температура включения, время включения выключения и т.д). Что бы в коде можно было обращаться по пути что то типа "имя_корневого_обьекта.имя_вложенного_обьекта.свойство"
Аватара пользователя
sergejey
Site Admin
Сообщения: 4286
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 76 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Объект который является частью другого обьекта

Сообщение sergejey » Пт мар 17, 2017 12:06 pm

Вложенные объекты это не очень хорошая идея. Есть классы, есть объекты классов, всё вышеперечисленное можно через них сделать. Я бы наверное создал два отдельных класса -- контроллеры и реле. Классы друг друга не наследуют, т.к. у них разные задачи. В свойствах класса реле что б можно было указать имя объекта из класса контроллеров. Тогда методы turnon/turnoff класса реле смогут использовать это свойство, чтобы обратиться к объекту контроллера и получить из него необходимые свойства.

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
maleha
Сообщения: 19
Зарегистрирован: Пн окт 24, 2016 7:39 pm
Благодарил (а): 3 раза
Поблагодарили: 1 раз

Re: Объект который является частью другого обьекта

Сообщение maleha » Пт мар 17, 2017 1:05 pm

Скорей всего так и придется делать. Хотелось просто какого-то древовидного отображения объектов в панели управления )) а так будет куча реле )))
Аватара пользователя
lanket
Сообщения: 1168
Зарегистрирован: Вт окт 14, 2014 11:27 pm
Откуда: Санкт-Петербург
Благодарил (а): 260 раз
Поблагодарили: 163 раза

Re: Объект который является частью другого обьекта

Сообщение lanket » Пт мар 17, 2017 5:48 pm

maleha писал(а):Скорей всего так и придется делать. Хотелось просто какого-то древовидного отображения объектов в панели управления )) а так будет куча реле )))
Зачем все в кучу?
Рекомендую подсмотреть примеры у бывалых в коннекте.

Здесь философия проста:
Не претендую на эталонность. Лично я пришёл к такой структуре:

Есть родительский класс реле, у него есть присущие всем реле св-ва состояние, месторасположение, нода (id железки к которой присоеденена релюха). И методы вкл, выкл, перекл

У него есть подклассы
Свет
Подсветка
Умные розетки
Климат
Сервисные

Эти дочерние классы наследуют св-ва и методы от родителя и обретают новые свойственные специфике подкласса.

В них уже объекты связанные с железками.

Вроде так более-менее правильно и соответствует местной идеологии. И вроде как упорядочено.

Отправлено с моего Redmi Note 3 через Tapatalk
Разработка голосового асистента для Мажордомо по любому ключевому слову.
:arrow: Обсужение
:arrow: gitHub 2й версии терминала
:arrow: GitHub модуля для МД
gitHub сырого модуля 2й версии
:arrow: Connect
Rasberry Pi 2, MDM, MySensors. И говорящий апельсин.
Ответить