C ++ Componentes comunes - Biblioteca de objetos de mensaje de bus

C ++ Componentes comunes - Biblioteca de objetos de mensaje de bus

Bus de mensajes Introducción

Las relaciones entre los objetos en general son: dependencia, asociación, agregación, herencia y composición, son de acoplamiento secuencial fortaleció relación. Entre los objetos asociación más común es dependientes, las referencias y la herencia. En un proceso de desarrollo de software a gran escala, una gran cantidad de objetos, las relaciones son muy complicadas, si no es un método unificado, sencillo de manejar la relación entre estos objetos, la relación es probable que conduzca a objetos como una tela de araña, conducir al mantenimiento de la espalda difícil. dependencias directas entre objetos o referencias serán conducir a la dependencia, las relaciones complicadas de referencia; relación de dependencia interfaz es un fuerte acoplamiento, el acoplamiento no satisface los requisitos de la baja. Por lo tanto, una solución técnica es también relaciones complejas entre los objetos, un fuerte problema de acoplamiento.

Puede resolver con eficacia la tecnología de bus de mensajes basado, vínculos entre los objetos sólo a través de mensajes, en lugar de depender directamente o por asociación de estos problemas. bus de mensajes relaciones entre objetos complejos simplifican y reducen la complejidad, sino también para liberarnos de entre la compleja red de relaciones fuera del objetivo, mejorar la capacidad de mantenimiento del programa.

En el bus de mensajes, los objetos están unidos por un mensaje, un mensaje que es la relaciones entre objetos, solamente necesitamos para gestionar estos mensajes en el bus de mensajes, sin preocuparse por lo que la asociación específica entre un objeto, que es fácil de gestión unificada. Debido a que entre los objetos sólo depende de algunas noticias, no hay dependencia directa no necesita heredar, el acoplamiento entre los objetos también eliminadas, sin ningún tipo de relación entre dos objetos, reduciendo en gran medida el acoplamiento entre objetos.

La clave de la tecnología de bus de mensajes

(1) definición de mensaje común
es esencialmente la tecnología de bus de mensajes es hacer que todos los objetos a través del mensaje de contacto, por lo tanto, necesidad de definir un formato de mensaje común, por lo que todos los objetos se puede aceptar.
Registro (2) el mensaje
para que todos los objetos pueden firmar los mensajes de interés.
(3) distribuir mensajes
a través de bus de mensajes para la distribución de mensajes, de modo que todos los receptores puedan recibir y procesar mensajes

Mensaje de bus ideas de diseño

mensaje de temporización del bus figura

Aquí Insertar imagen Descripción
Como se puede observar en la figura, sujeto y objeto a objeto no está asociada, que son el contacto se produce a través del bus de mensajes. El mensaje enviado a los pasos siguientes correspondientes espectador bus de mensajes introducción de destino.
1) un mensaje de autobús para el cuerpo del mensaje de registro espectador, el cuerpo del mensaje es exigible tipo de cadena añadido correspondiente a la finalidad del registro es para recibir este tipo de mensajes en el momento adecuado.
2) Guardar mensaje autobús registrado observadores cuerpo del mensaje.
3) en relación con un objeto envía un mensaje al bus de mensajes, el tipo de mensaje es del tipo de los rendimientos objeto que se puede llamar una cadena de más aplicación tópica.
4) el bus de mensajes basado en el tema de los objetos de tipo de mensaje que me envió para encontrar todos los mensajes de interés para el espectador.
5) Mensaje de bus de mensajes de difusión para el espectador.
6) procesar el visor de mensajes.

bus de mensajes clase figura

Aquí Insertar imagen Descripción
Class se puede ver en la figura, el bus de mensajes es relativamente simple de lograr. El siguiente aspecto en algún diagrama de clase de objeto.

  • Noncopyable: para evitar que la clase que se está copiando, necesidad de derivar de ella. Sobre su introducción, el lector puede referirse al anterior 8.2.
  • Messagebus: sistema de bus de mensajes es responsable de mantener todos los mensajes tienen que añadir un mensaje, y el mensaje de la función de distribución para eliminar el mensaje. En el que el vacío Adjuntar (F && f, secuencia const y strTopic = "") es para un observador al objeto que el mensaje de registro, el tipo de cadena predeterminada relativa vacío; Remove void (const string y strTopic = "método") se utiliza para eliminar el mensaje ; SendReq vacío (args && ... args, const string y strTopic = "") está disponible para enviar mensajes relacionados con el objeto, el tipo de cadena de entrada por defecto cuestión está vacía.
  • Observador: objetos de observación, recibe y procesa el mensaje enviado bus de mensajes.
  • Observer_Fcuntion: cuerpo de mensaje, puede llamar el objeto es en realidad una función de los objetos observadores internos.
  • Asunto: objeto de tema, el objeto envía un mensaje al bus de mensajes.

aplicación bus de mensajes

Dirección del proyecto github

Publicados 155 artículos originales · ganado elogios 15 · vistas 160 000 +

Supongo que te gusta

Origin blog.csdn.net/wangdamingll/article/details/105127569
Recomendado
Clasificación