Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Посмотрел через свою новую призму - гибрид ООП и Ядра, на объектные системы описанные в программах, - чуть мозг не лопнул. В первую очередь, по новому взглянул на системы своего ГУИ. Через все эти объекты-параметры, объекты-состояния, объекты-события и объекты-обработчики. Поскольку ГУИ и его технология мне известны, все представилось довольно четко, но, система нарисовалась очень сложная. Масса параметров, связок и обработчиков. Пришел к выводу, что такие системы сами возникать никак не могут. И естественный отбор здесь бессилен.)))
Вот почему:
Каждый параметр может иметь n-ное количество производных параметров. Скажем: изменение Х может породить бесконечно много производных параметров от значений этого Х в каждый момент времени.
Каждый производный параметр должен иметь обработчик и связь с другими параметрами. Никакой параметр не существует сам по себе. Связь обязательна.
Связь может быть разной, а следовательно, могут появляться самые разнообразные обработчики-фильтры, корректоры, преобразователи.
Событий, которые можно считать значимыми для систем неопределенно много. Каждое - имеет свои свойства, связи и обработчиков. Вариантов бессчисленно.
Таким образом, без концепции, никакая система не может возникнуть. (Скорее всего).
Непонятно только, как зародилась жизнь на Земле...
Приведу еще пример:
Рассмотрим систему перемещения окна с элементами управления по графику.
Таким образом, благодаря этой системе, мы можем менять координаты окна и его объектов на событии ухвата его ручки курсором. Для перемещения нужно связать все это с функциями-обработчиками ObjectSetInteger которые меняют расположение МТ-объекта на графике.
Это реализация всего одной функции ГУИ методом связи специальных системых блоков - Объектов-параметров, Объектов-обработчиков и т.д...
Построить такую систему в Ядре, ни чуть не проще (а может и сложнее), чем написать обычный код, не превращая все подряд в Объект. Но, я буду копать дальше...
ЗЫ. Забыл добавить, что для перемещения окна нужно еще "смастерить" Объект-событие, фиксирующее нажатие на ручку окна и перемещение курсора. И этот Объект-событие соединить связкой с Объектом-обработчиком значений х,у курсора (что записывает разницу в производные параметры), что бы тот работал только по сигналу этого события.
ЗЫЫ. А для каждого Объекта-события нужно создавать свой Объект-обработчик и соединять его с ним.
ЗЫЫЫ. А каждый Объект-обработчик имеет свои свойства, значения которых он использует при работе с параметрами или событиями. Следовательно, должен быть шаблон, иначе, можно "запариться" все это создавать.))
Приведу еще пример:
Рассмотрим систему перемещения окна с элементами управления по графику.
Таким образом, благодаря этой системе, мы можем менять координаты окна и его объектов на событии ухвата его ручки курсором. Для перемещения нужно связать все это с функциями-обработчиками ObjectSetInteger которые меняют расположение МТ-объекта на графике.
Это реализация всего одной функции ГУИ методом связи специальных системых блоков - Объектов-параметров, Объектов-обработчиков и т.д...
Построить такую систему в Ядре, ни чуть не проще (а может и сложнее), чем написать обычный код, не превращая все подряд в Объект. Но, я буду копать дальше...
ЗЫ. Забыл добавить, что для перемещения окна нужно еще "смастерить" Объект-событие, фиксирующее нажатие на ручку окна и перемещение курсора. И этот Объект-событие соединить связкой с Объектом-обработчиком значений х,у курсора (что записывает разницу в производные параметры), что бы тот работал только по сигналу этого события.
ЗЫЫ. А для каждого Объекта-события нужно создавать свой Объект-обработчик и соединять его с ним.
ЗЫЫЫ. А каждый Объект-обработчик имеет свои свойства, значения которых он использует при работе с параметрами или событиями. Следовательно, должен быть шаблон, иначе, можно "запариться" все это создавать.))
Сложно. Неоправданно сложно.
Все верно.
Связка между производными параметрами содержащими разницу х,у курсора и объектами-формы (находящимися в цепочке) имеет в центре обработчик, который может выполнять последовательное соединение с параметрами х,у каждого объекта-формы. То есть, связка параметров через обработчик последовательного соединения позволяет заменить связку каждого объекта формы с производными параметрами передающими значения разницы х,у. Тоже думал над этим.
В моем ГУИ перемещение окна реализовано внутри функции делающей следующее:
(1) Проверяющей событие нажатия на ручку окна
(2) Событие перемещение курсора
(3) Вычисляющей разницу между текущими координатами курсора и прошлыми
(4) Делающей цикл по объектами окна и меняющей их координаты поправкой разницы положения курсора.
(5) Вызывающей ObjectSetInteger для перемещения МТ-объекта формы окна (канваса) по графику на заданное расстояние.
Таким образом, реализация внутри функции правильная. Реализация через Объекты-обработчики, Объекты-параметры и Объекты-связки выглядит неудобно на этом фоне. Но, будем копать...
Все верно.
Связка между производными параметрами содержащими разницу х,у курсора и объектами-формы (находящимися в цепочке) имеет в центре обработчик, который может выполнять последовательное соединение с параметрами х,у каждого объекта-формы. То есть, связка параметров через обработчик последовательного соединения позволяет заменить связку каждого объекта формы с производными параметрами передающими значения разницы х,у. Тоже думал над этим.
В моем ГУИ перемещение окна реализовано внутри функции делающей следующее:
(1) Проверяющей событие нажатия на ручку окна
(2) Событие перемещение курсора
(3) Вычисляющей разницу между текущими координатами курсора и прошлыми
(4) Делающей цикл по объектами окна и меняющей их координаты поправкой разницы положения курсора.
(5) Вызывающей ObjectSetInteger для перемещения МТ-объекта формы окна (канваса) по графику на заданное расстояние.
Таким образом, реализация внутри функции правильная. Реализация через Объекты-обработчики, Объекты-параметры и Объекты-связки выглядит неудобно на этом фоне. Но, будем копать...
Да потому, что не нужно делать эти обработчики отдельно от объекта. Класс, возвращающий координаты курсора можно сделать статическим - он будет доступен любому классу программы, а получение координат и реакция на них должны быть реализованы в каждом объекте. Но вызов этих обработчиков должен быть только у главного объекта формы. Тогда для всех остальных объектов формы достаточно указать новые координаты и перерисовать. Внутри объекта-формы есть список всех его объектов. Объект-форма определил изменение своих координат - устанавливает новые значения своим координатам, идёт по списку своих объектов и вызывает методы установки координат каждого объекта в своём списке. При этом каждый очередной объект при изменении своих координат делает то же самое - просматривает список своих объектов и даёт им команду сменить координаты. В списках объекты расположены в порядке их отрисовки (Z-последовательность). Т.е., метод смены координат у каждого объекта свой, но реализован одинаково - просматривает список всех "своих" объектов и вызывает для каждого из них этот же метод. Таким образом, мы, разово вызвав у главного объекта-формы этот метод, автоматически запустим смену координат у абсолютно всех объектов формы. После завершения обработки всего списка "своих" объектов объекта-формы, вызывается его метод перерисовки чарта - единожны для всех изменённых объектов.
...
Это стандартный ООП-взгляд на механизм перемещения окна. Я покажу другой. Для этого, на секундочку очистите сознание и просто следуйте за моей мыслью.
Вот и сказки конец...
Посмотрели мы на матрицу со стороны и ахнули! "Да мы же Объект-систему создали!"))
ЗЫ. Заметьте, что все можно создать в массиве-матрице. А массив-матрица и есть Ядро. А сущности в нем - самые настоящие объекты. И параметры, и события, и связки, и свойства, и обработчики. Систем которые можно соорудить в Ядре из этих базовых вещей - бесчисленно.
Шуточное продолжение...
11. Решили как то параметры-первенцы следовать моде. Узнали, что есть где то в матрице ярмарка свойств, а в новинке - некое пространство. Мол, целых три свойства имеет. "Измерения" называются. Выборка значений у этих свойств якобы бесконечна, а бонусом - еще "параметр-время" отдают. Пришли параметры на ярмарку и взяли себе свойства х,у,х_size,y_size. Оболочку говорят, хотим себе сделать, в пространстве. Ну, захватили еще цвет (color). Вернулись они и стали облачаться в новые свойства. Лепили, лепили себе пространственные оболочки, пока не устали. То вырастали непомерно, то схлопывались… Потом, цвета на себя надели и успокоились. Стали думать, что дальше... И тут, на коробочку свойства-времени взглянули. Дай думают, попробуем, что за штука... Открыли, приладили к себе, да не рассчитали значений и в миг испарились в пустоте. Ведь время, - это параметр с которым нужно быть очень осторожным...
Шуточное продолжение...
11. Решили как то параметры-первенцы следовать моде. Узнали, что есть где то в матрице ярмарка свойств, а в новинке - некое пространство. Мол, целых три свойства имеет. "Измерения" называются. Выборка значений у этих свойств якобы бесконечна, а бонусом - еще "параметр-время" отдают. Пришли параметры на ярмарку и взяли себе свойства х,у,х_size,y_size. Оболочку говорят, хотим себе сделать, в пространстве. Ну, захватили еще цвет (color). Вернулись они и стали облачаться в новые свойства. Лепили, лепили себе пространственные оболочки, пока не устали. То вырастали непомерно, то схлопывались… Потом, цвета на себя надели и успокоились. Стали думать, что дальше... И тут, на коробочку свойства-времени взглянули. Дай думают, попробуем, что за штука... Открыли, приладили к себе, да не рассчитали значений и в миг испарились в пустоте. Ведь время, - это параметр с которым нужно быть очень осторожным...
А первые десять было нешуточное?
Я, например, не могу читать без смеха.
...
Вся эта "объектность" здорово мозги запутывает, согласитесь... С ней осторожным нужно быть. Николай Семко был прав, говоря о близости гениальности и шизофрении. Можно "поехать". Есть вещи, которые лучше не понимать. Некоторые двери, должны всегда быть закрыты для нашего Сознания. Как говорилось в одном фильме, - "самый опасный паразит - идея. Однажды попав в мозг, ее уже невозможно оттуда выковырять.". Матрица про которую я говорил - опасна для Разума. В ней легко заплутать и навеки потеряться. Будем же осторожны.)))