Cómo entender módulos, componentes y objetos
Si necesitamos reutilizar parte del código de dicho programa, es decir, extraer parte del código y ponerlo en otros programas, entonces, en términos generales, debemos usar "funciones" como encapsulación, de lo contrario , copie la sección completa Las desventajas del código son obvias. Las funciones se utilizan para reutilizar código y, naturalmente, tienen sus propias interfaces: parámetros y valores de retorno (o parámetros de entrada y parámetros de salida). Por lo tanto, una función puede ser un bloque cerrado de código con interfaces de entrada y salida fijas, al que llamamos módulo.
Sin embargo, cuando escribimos "módulos de funciones", a menudo encontramos que necesitamos múltiples funciones para operar en el mismo dato. Por ejemplo, si operamos con archivos, para un archivo específico necesitamos abrir, agregar, eliminar y cerrar el archivo. Si cada operación es una función, entonces nuestro parámetro de salida a menudo necesita representar un puntero de archivo y este puntero suele ser el parámetro de entrada de otras funciones; --De hecho, este enfoque destruye la reutilización del módulo, porque en términos del concepto de "módulo", imaginamos que solo necesitamos usar algunos parámetros de entrada para obtener los resultados de la operación y no queremos preocuparnos por el estado de los parámetros de entrada, ni queremos mantener el estado de los parámetros de salida. No queremos preocuparnos por el estado de los parámetros de entrada y el estado de los parámetros de salida. Dado que la mayoría de los sistemas comerciales que escribimos están diseñados para manipular datos en lugar de simplemente operar con ellos, el estado de los datos se convierte en el núcleo del programa y los diversos "módulos" simplemente modifican y manipulan datos específicos.
El concepto de objetos es excelente para aquellos que desean integrar datos y operaciones en módulos. Sin embargo, también tiene algunas desventajas. Una de las deficiencias más típicas es que el modelo de objetos es un concepto de lenguaje de programación. Básicamente, un objeto es solo un conjunto de datos en la memoria. Sin embargo, los módulos que queremos utilizar suelen ser más que un montón de números en la memoria que pueden resolver el problema. Por ejemplo, necesitamos administrar una tabla en una base de datos, operar un botón en una interfaz gráfica de usuario o controlar un personaje animado en un juego. Éstas no son sólo "propiedades" de la memoria.
En este momento, la gente confía en las herramientas IDE. Muchas personas necesitan reutilizar datos complejos y asociarlos con el modelo de objetos. Después de encapsularlos en módulos, pueden usarse de acuerdo con las restricciones previas de uso. es un componente. Los componentes generalmente tienen más restricciones que los objetos porque cada tipo de componente tiene una interfaz de uso clara para que pueda "componerse" en un marco. Por ejemplo, la especificación JavaBean establece que todos estos componentes deben proporcionar propiedades externas de lectura y escritura en forma de captadores/definidores. Por ejemplo, en la especificación Flex, los componentes pueden incluso describirse usando solo XML, sin requerir necesariamente algún tipo de código de programa.
Por lo tanto, podemos ver que existe cierta conexión entre módulos, objetos y componentes, pero no son completamente equivalentes. En términos generales, nos gusta pensar en cualquier código reutilizable como un módulo; queremos que los módulos sean códigos simples y reutilizables que puedan controlarse solo con entrada y salida, por lo que el significado de módulo es el más amplio y versátil. Desafortunadamente, en realidad, no hay muchos módulos que puedan usarse de manera muy simple. Para poder manejar problemas complejos, la gente ha desarrollado muchas herramientas de programación, algunas de las cuales están mejoradas para resolver problemas específicos, como bases de datos, GUI, etc. y juegos El uso de algunos módulos facilita el uso de código reutilizable, y todos estos beneficios en términos de facilidad de uso tienen el costo de cumplir con ciertas especificaciones.