Уровень 4 выбора вводит :has()
(ранее индикатор объекта !
), который позволит вам выбрать предыдущего брата с:
previous:has(+ next) {}
... но в время написания, это некоторое расстояние, выходящее за пределы кровопускания для поддержки браузера.
Кратким ответом на вопрос "есть ли четкое различие" будет "нет".
Термины не совсем взаимозаменяемы, но подразумевают одну и ту же базовую архитектуру - именно то, что вы будете инициировать события или сообщения.
Первая статья, на которую вы ссылаетесь, посвящена низкоуровневому водопроводу, "шине" MOM или паба-суб, который транспортирует сообщения от вашего имени. Событийно-ориентированная архитектура - это то, что вы строите поверх этого фреймворка.
Термин событийно-ориентированный, хотя и применяется к GUI-коду, на самом деле не находится на том же уровне абстракции. В этом случае, это шаблон в малой степени по сравнению с построением всего вашего предприятия по строкам, управляемым сообщениями/событиями
.Понятие сообщения является абстрактными, более конкретными типами сообщения, Событие и Команда.
, В то время как сообщения не имеют никакого специального намерения вообще, события сообщают о чем-то, что произошло и уже завершается (в прошлом). Команды инициировали что-то, что должно произойти (в будущем).