pensamiento COI

  1. COI antecedentes teóricos

Todos sabemos que en los métodos de diseño de software orientado a objetos, que son desde la N implementación subyacente compuesto de objetos, todos los objetos a través de la cooperación mutua, y en última instancia la lógica de negocio del sistema.
Aquí Insertar imagen Descripción

Es similar a un reloj mecánico cubierta verán similar al caso anterior, los respectivos engranajes están impulsando la hora, minuto y segundo manos giro hacia la derecha, lo que produce la hora correcta en el dial. Se describe un tal conjunto de engranajes de la Fig. 1, tiene una pluralidad de engranajes individuales, los engranajes engranados entre sí, trabajan juntos para realizar una tarea común. Podemos ver que en tal conjunto de un engranaje, un engranaje si hay un problema, puede afectar el normal funcionamiento de todo el conjunto de engranajes,

El acoplamiento entre el conjunto de engranajes, el acoplamiento entre los objetos es muy similar a la del software del sistema. El acoplamiento entre los objetos es inevitable y necesario, que es la base para el trabajo colaborativo . Ahora, junto con la aplicación industrial de escala cada vez mayor, las dependencias entre objetos se han convertido en cada vez más complejo, a menudo habrá múltiples dependencias entre objetos , por lo tanto, los arquitectos y diseñadores para el análisis de sistemas y diseño, se enfrentará a retos aún mayores. sistema de acoplamiento entre los objetos es demasiado alto, la situación de hecho se afecta del cuerpo inevitable.

Aquí Insertar imagen Descripción

relación de acoplamiento no sólo aparecerá entre el objeto y el objeto aparecerá entre los módulos del sistema de software, así como entre los sistemas de software y hardware. ¿Cómo reducir entre sistemas, acoplamiento entre módulos y entre los objetos es una de la eterna búsqueda de la meta de la ingeniería de software. Con el fin de resolver el acoplamiento entre los objetos demasiado alto un problema, expertos en software Michael Mattson propusieron la teoría del COI, para lograr el "desacoplamiento" entre los objetos, la teoría actual se ha aplicado con éxito a la práctica, la primavera

2. ¿Qué es la Inversión de Control (IoC)
COI es Inversión de las siglas de control, la mayoría de los libros traducidos como "Inversión de Control", y algunos libros traducidos al "control inverso" o "control al revés."
En 1996, Michael Mattson en el artículo sobre el marco orientado a objetos para explorar una, propuesta por primera vez el concepto de la COI. Para la idea básica del diseño y programación orientada a objetos, ya hemos hablado mucho, y no repetir, en definitiva, es para romper los sistemas complejos en una interacción cooperativa de objetos, estas clases de objetos después de la adopción del paquete, la implementación interna es transparente a la externa , lo que reduce la complejidad de la solución del problema, sino también la flexibilidad para ser reutilizado y ampliado el punto de vista de la teoría .IOC eleva más o menos así: por medio de una "tercera parte" de lograr, como se muestra a continuación entre los objetos que tienen dependencias:
Aquí Insertar imagen Descripciónnosotros llegado a una prueba: el contenedor COI entre la figura de arriba eliminado, y luego buscar en el sistema:
Aquí Insertar imagen Descripciónahora vemos la imagen que queremos hacer realidad el contenido completo de la totalidad de las necesidades del sistema que hay que hacer. En este momento, A, B, C, D entre estos cuatro objetos no tiene ninguna relación de acoplamiento entre sí sin ningún contacto , por lo que, cuando se da cuenta de Afganistán, y no hay necesidad de ir a considerar la B, C y D, y dependencias entre objetos se ha reducido a un mínimo. Por lo tanto, siempre y cuando cada miembro involucrado en el desarrollo de su propia clase se puede lograr, sin ningún tipo de relación con los demás!

Veamos, Inversión de Control (COI) en el extremo qué juegan un nombre tan comparamos?

El software del sistema no se introduce hasta que el recipiente COI muestra en la Figura 1, el objeto A es dependiente en el objeto B, entonces el objeto A a un punto de tiempo en la operación de inicialización o que debe tomar la iniciativa de crear un objeto con el objeto B ha sido creada o B. si va a crear o utilizar un objeto B, el control en sus propias manos.

sistema de software después de la introducción del contenedor COI, esta situación ha cambiado por completo debido a la pérdida de una relación directa entre el COI para unirse a la embarcación, el objeto A y el objeto B, por lo que, cuando el objeto de la necesidad de ejecutar el objeto B, el contenedor COI tomará la iniciativa crear un objeto de colocar la inyección de acetato de metilo objeto sea necesario. Mediante la comparación antes y después de: Un proceso de obtención del objeto de objetos dependientes B, por el comportamiento activo se convierte en un comportamiento pasivo, el control sobre invertido, este es el "Inversión de Control" origen del nombre.

COI alias: inyección de dependencias (DI)

En 2004, Martin Fowler discute el mismo problema, ya que el COI es Inversión de Control, así que al final es, después de un análisis detallado y demostración, el "? Control de lo que se invirtieron aspectos de la misma" Él tiene la respuesta: "get el proceso se invierte objeto dependiente con "después del control se invierte, el proceso de obtención de sus objetos dependientes gestionado por la inyección activa contenedor COI por lo que" invertido "toma un nombre más apropiado es" inyección de dependencia (la inyección de dependencia ) ". Su respuesta, de hecho, muestra cómo lograr el COI: la inyección. El llamado inyección de dependencia, es decir, el contenedor COI durante el funcionamiento, dependencias dinámicas inyecta en ciertos objetos .

Por lo tanto, la inyección de dependencias (DI) y control inverso (COI) es la misma cosa desde diferentes ángulos descrito, mediante la introducción de los medios de recipiente COI es por medio de la dependencia de la inyección, el desacoplamiento entre los objetos.

COI nos trajo nada bueno

Comenzamos con el ejemplo de USB, dispositivos externos USB utilizando la incorporada en el disco duro que, al final trae ningún bien?

  • En primer lugar, el dispositivo USB como un dispositivo de ordenador host externo, antes de insertar el anfitrión y el equipo host no tiene ningún tipo de relación, sólo después de que estamos juntos, tanto antes de que ocurra el contacto, relevante. Por lo tanto, no importa cuál es el problema o bien ambos aparecen, no afectará al funcionamiento del otro. Esta función está incorporada en la ingeniería de software, el mantenimiento es bueno, muy bueno para la unidad de pruebas, depuración y fácil de diagnosticar. Cada código de Clase puede comprobarse por separado, independientemente uno de otro entre sí, siempre que sus funciones se pueden corregir, es decir, de bajo o ningún acoplamiento entre los componentes acoplados trae beneficios.
  • En segundo lugar, entre dispositivos USB y la independencia del equipo host, sino que también aporta otra ventaja, la producción de los fabricantes de dispositivos USB y los fabricantes que producen computadora central pueden ser personas que no tienen relación, todas las cosas que hacen, entre ellas la única necesidad es cumplir con la interfaz USB estándar. Cada miembro del equipo de desarrollo sólo tienen que preocuparse de conseguir su propia lógica de negocio, no es necesario preocuparse por otras personas que trabajan en curso, debido a que su trabajo no tiene nada que ver con los demás, puede probar tareas solo, usted no tiene que depender de la tarea otras personas de ensamblaje, ya no tienen que tirar de responsabilidad clara. Así, en un proyecto de tamaño mediano, los miembros del equipo clara división de responsabilidades clara , es fácil ser una gran tarea en pequeñas tareas, la eficiencia del desarrollo y la calidad del producto será mucho mayor.
  • En tercer lugar, con un USB de dispositivos externos se pueden conectar a cualquier dispositivo compatible con USB, se puede conectar en el equipo host, la máquina puede ser enchufado en DV, dispositivo externo USB se puede utilizar en varias ocasiones . En la ingeniería de software, esta característica es una buena reutilización, podemos tener componentes comunes universal independiente, utilizado varias veces para otras partes del proyecto u otros proyectos
  • En cuarto lugar, con el dispositivo USB externo, el módulo tiene una intercambiables en caliente. COI genera método de objeto para el modo externo, es decir, el objeto resultante se define en el archivo de configuración, de modo que cuando se reemplaza una subclase de aplicación será muy sencillo, basta con modificar los archivos de configuración en él, con función de intercambio en caliente.

el principio

Podemos trabajar en modo contenedores COI visto como el modelo de fábrica de la sublimación + Singleton, como una fábrica de envases COI, esta fábrica para producir las definiciones de los objetos que figuran en el archivo de configuración, y luego usar el lenguaje de programación programación de reflexión, para formar el correspondiente nombre de clase de objeto determinado en el archivo de configuración. Desde el punto de vista de la implementación, la COI se pone antes de que el método de fábrica para escribir la generación de código objeto muerto, cambiando el archivo de configuración para definir, es decir, la planta genera tanto independientes como objetos separados por, el propósito es mejorar la flexibilidad y mantenibilidad. Mientras que unos objetos compartidos globales

Publicado 23 artículos originales · ganado elogios 2 · Vistas 928

Supongo que te gusta

Origin blog.csdn.net/metjoyful/article/details/103394148
Recomendado
Clasificación