Tecnología de programación orientada a objetos
Programación visual Programación visual, también conocida como programación visual: basada en la idea de programación de "lo que ves es lo que obtienes" como principio, se esfuerza por realizar la visualización del trabajo de programación, es decir , los resultados se pueden ver en cualquier momento, y el ajuste de programas y resultados es sincrónico. La programación visual se compara con los métodos de programación tradicionales. Lo "visual" aquí se refiere al hecho de que no se requiere programación y el trabajo de diseño de la interfaz solo se puede completar mediante una operación intuitiva. Actualmente es la mejor herramienta de desarrollo de aplicaciones de Windows. Las características del lenguaje de programación visual se reflejan principalmente en dos aspectos: primero, se basa en el pensamiento orientado a objetos e introduce el concepto de controles y controlado por eventos; segundo, el proceso de desarrollo del programa generalmente sigue los siguientes pasos, es decir, Primero dibuja la interfaz y luego, según los eventos, escribe el código del programa para responder a varias acciones del mouse y el teclado. Diez preguntas sobre la programación visual 1. ¿Qué es la programación visual? La programación visual (visual) es un método de programación completamente nuevo que permite principalmente a los programadores utilizar varios controles proporcionados por el propio software para construirlo como varias interfaces para aplicaciones. 2. ¿Cuáles son las ventajas de la programación visual? La mayor ventaja de la programación visual es que los diseñadores pueden completar el diseño de programas de aplicación sin escribir o solo necesitan escribir muy poco código de programa, lo que puede mejorar en gran medida la eficiencia del trabajo de los diseñadores. 3. ¿Cuáles son los lenguajes que se pueden usar para la programación visual? Hay muchos lenguajes que se pueden usar para la programación visual. Los más utilizados son Visual Basic de Microsoft, Visual C ++, Visual Foxpro chino, Delphi de Borland. etc. 4. ¿Cuáles son los conceptos básicos de la programación visual? Los principales conceptos básicos incluyen formas, componentes, propiedades, eventos, métodos, etc. 5. ¿Qué es un formulario? Un formulario se refiere a la ventana utilizada para la programación. Principalmente diseñamos aplicaciones colocando varios componentes (como botones de comando, casillas de verificación, botones de opción, barras de desplazamiento, etc.) en el formulario. interfaz en ejecución. 6. ¿Qué son los componentes? Los llamados componentes son los diversos componentes que componen la interfaz de ejecución del programa, como botones de comando, casillas de verificación, botones de opción, barras de desplazamiento, etc. 7. ¿Qué son las propiedades? Las propiedades son las propiedades de un componente. Explica cómo se muestra el componente durante la ejecución del programa, cuál es el tamaño del componente, dónde se muestra, si es visible, si es válido... 8. ¿En qué categorías se pueden dividir los atributos? se puede dividir en tres categorías, atributos de diseño: es un atributo que entra en juego al diseñar; atributo en ejecución: es un atributo que solo entra en juego durante la ejecución del programa; atributo de solo lectura: es un atributo que; Sólo se puede ver pero no se puede cambiar. 9. ¿Qué es un evento? Un evento es una operación en un componente. Por ejemplo, si hace clic en un botón de comando con el mouse, aquí, hacer clic con el mouse se denomina evento (evento de clic). 10. ¿Qué es un método? Un método es una operación específica que se realizará después de que ocurra un evento, similar al programa anterior. Por ejemplo, cuando hacemos clic en el botón de comando "Salir" con el mouse, el programa finalizará ejecutando un comando. El proceso de ejecución del comando se denomina método. Programación orientada a objetos 1. Reseña histórica: En 1967, Kisten Nygaard y Ole Johan Dahl del Centro de Computación de Noruega desarrollaron el lenguaje Simula67, que proporcionó un mayor nivel de abstracción y encapsulación que las subrutinas e introdujo los conceptos de abstracción de datos y clases. Se considera el primero. Lenguaje orientado a objetos. A principios de la década de 1970, el equipo de investigación de Alan Kay en el Centro de Investigación de Palo Alto desarrolló el lenguaje Smalltalk, y luego desarrolló Smalltalk-80, considerado el lenguaje orientado a objetos más puro, como Objective-C. C, Self y Eiffl han tenido un profundo impacto.
Con la aparición de los lenguajes orientados a objetos, la programación orientada a objetos surgió y se desarrolló rápidamente. Después de eso, la orientación a objetos continuó penetrando en otras etapas. En 1980, Grady Booch propuso el concepto de diseño orientado a objetos y luego comenzó el análisis orientado a objetos. En 1985 apareció la primera base de datos comercial orientada a objetos. Desde 1990, la investigación sobre análisis, pruebas, medición y gestión orientada a objetos ha logrado grandes avances. De hecho, conceptos como “objetos” y “propiedades de los objetos” se remontan a principios de la década de 1950, cuando aparecieron por primera vez en los primeros escritos sobre inteligencia artificial. Pero tras la aparición de los lenguajes orientados a objetos, el pensamiento orientado a objetos se desarrolló rápidamente. En las últimas décadas, los lenguajes de programación han apoyado cada vez más mecanismos abstractos: desde lenguajes de máquina hasta lenguajes ensambladores, pasando por lenguajes de alto nivel y lenguajes orientados a objetos. Después de la aparición del lenguaje ensamblador, los programadores evitaron usar 0-1 directamente. En su lugar, usaron símbolos para representar las instrucciones de la máquina, lo que facilitó la escritura de programas. Cuando el tamaño del programa siguió creciendo, los lenguajes de alto nivel, como. Aparecieron Fortran, C y Pascal. Estos lenguajes de alto nivel facilitan la escritura de programas complejos y los programadores pueden afrontar mejor la creciente complejidad. Sin embargo, si el sistema de software alcanza una cierta escala, incluso si se aplican métodos de programación estructurados, la situación seguirá siendo incontrolable. Como herramienta para reducir la complejidad surgieron los lenguajes orientados a objetos y con ellos la programación orientada a objetos. 2. Conceptos básicos de programación orientada a objetos Los conceptos de programación orientada a objetos incluyen principalmente: objetos, clases, abstracción de datos, herencia, enlace dinámico, encapsulación de datos, polimorfismo y paso de mensajes. A través de estos conceptos se han materializado concretamente las ideas orientadas a objetos. 1) Objeto El objeto es la entidad básica del tiempo de ejecución. Es una entidad lógica que encapsula datos y el código que opera estos datos. 2) Clase Una clase es una abstracción de objetos del mismo tipo. Todos los datos y el código contenidos en un objeto se pueden construir mediante clases. 3) Encapsulación La encapsulación consiste en agrupar datos y código para evitar interferencias externas e incertidumbre. Ciertos datos y códigos de un objeto pueden ser privados y el mundo exterior no puede acceder a ellos, logrando así diferentes niveles de acceso a datos y códigos. 4) Herencia La herencia es la característica que permite que un objeto de un determinado tipo obtenga un objeto de otro tipo. La reutilización del código se puede lograr mediante la herencia: una nueva clase derivada de una clase existente tendrá automáticamente las características de la clase original y, al mismo tiempo, también puede tener nuevas características propias. 5) Polimorfismo El polimorfismo se refiere a la capacidad de diferentes cosas de tener diferentes expresiones. El mecanismo polimórfico permite que objetos con diferentes estructuras internas compartan la misma interfaz externa, reduciendo de esta manera la complejidad del código. 6) Vinculación dinámica La vinculación se refiere al acto de vincular una llamada a un procedimiento con el código correspondiente. El enlace dinámico es un enlace en el que el código asociado con una llamada a un procedimiento determinado sólo se conoce en tiempo de ejecución. Es una forma específica de implementación polimórfica. 7) Transmisión de mensajes Los objetos necesitan comunicarse entre sí, y la forma de comunicación es enviar y recibir información entre objetos. El contenido del mensaje incluye la identificación del objeto que recibe el mensaje, la identificación de la función que debe llamarse y la información necesaria. El concepto de transmisión de mensajes facilita la descripción del mundo real. 3. Lenguajes orientados a objetos Para ser llamado lenguaje orientado a objetos, un lenguaje debe admitir varios conceptos principales orientados a objetos. Según los diferentes niveles de soporte, los lenguajes orientados a objetos comúnmente conocidos se pueden dividir en dos categorías: lenguajes basados en objetos y lenguajes orientados a objetos. Los lenguajes basados en objetos solo admiten clases y objetos, mientras que los lenguajes orientados a objetos admiten conceptos que incluyen: clases y objetos, herencia y polimorfismo. Por ejemplo, Ada es un lenguaje típico basado en objetos porque no admite herencia ni polimorfismo. Además, otros lenguajes basados en objetos incluyen Alphard, CLU, Euclid y Modula.
Algunos lenguajes orientados a objetos son lenguajes recién inventados, como Smalltalk y Java. Estos lenguajes a menudo absorben la esencia de otros lenguajes y tratan de eliminar sus deficiencias. Por lo tanto, las características de los lenguajes orientados a objetos son particularmente obvias. y lleno de vitalidad; otros evolucionaron transformando los lenguajes existentes y agregando características orientadas a objetos. Como Object Pascal desarrollado a partir de Pascal, Objective-C y C desarrollado a partir de C, Ada 95 desarrollado a partir de Ada, etc. Estos lenguajes conservan la compatibilidad con el lenguaje original y no son lenguajes puramente orientados a objetos, sino porque son. Los predecesores suelen ser lenguajes que tienen cierta influencia, estos lenguajes siguen siendo inmortales y ocupan una posición muy importante entre los lenguajes de programación. 4. Ventajas de la programación orientada a objetos Antes de la aparición de la programación orientada a objetos, la programación estructurada era la corriente principal de la programación. La programación estructurada también se denominaba programación orientada a procesos. En la programación orientada a procesos, los problemas se ven como una serie de tareas que deben completarse. Para completar estas tareas se utilizan funciones (generalmente denominadas rutinas, funciones y procedimientos), y el enfoque de la resolución de problemas se centra en. funciones. La función está orientada a procesos, es decir, se centra en cómo completar tareas específicas de acuerdo con condiciones específicas. En los programas multifunción, muchos datos importantes se colocan en el área de datos globales para que todas las funciones puedan acceder a ellos. Cada función puede tener sus propios datos locales. La siguiente figura muestra la relación entre funciones y datos en un programa de procedimiento. Figura 1 Ejemplo de la relación entre funciones y datos en la programación orientada a procesos. Esta estructura puede fácilmente hacer que otras funciones modifiquen inadvertidamente los datos globales, por lo que no es fácil garantizar la exactitud del programa. Uno de los puntos de partida de la programación orientada a objetos es compensar algunas deficiencias de la programación orientada a procesos: los objetos son los elementos básicos del programa, que conectan estrechamente los datos y las operaciones, y protegen los datos para que no sean modificados accidentalmente por funciones externas. . La siguiente figura muestra la relación entre objetos, funciones y datos en un programa orientado a objetos. Figura 2 Ejemplo de la relación entre funciones y datos en la programación orientada a objetos Al comparar la programación orientada a objetos y la programación orientada a procesos, también podemos obtener otras ventajas de la programación orientada a objetos: 1) El concepto de abstracción de datos puede mantener lo externo. interfaz sin cambios. Cambie la implementación interna para reducir o incluso evitar la interferencia con el mundo exterior; 2) El código redundante se reduce en gran medida a través de la herencia y el código existente se puede expandir fácilmente para mejorar la eficiencia de la codificación, reducir la probabilidad de errores y reducir la dificultad. del mantenimiento del software; 3) Combinado con el análisis orientado a objetos y el diseño orientado a objetos, permite que los objetos en el dominio del problema se asignen directamente al programa, reduciendo el proceso de conversión de enlaces intermedios en el proceso de desarrollo de software; identificación y división de objetos, el sistema de software se puede dividir en Varias partes relativamente independientes hacen que sea más fácil controlar la complejidad del software hasta cierto punto 6) El diseño centrado en objetos puede ayudar a los desarrolladores a comprender problemas tanto desde el punto de vista estático (propiedades) como dinámico (métodos); ) aspectos, para una mejor comprensión Implementar el sistema 7) A través de la agregación y unión de objetos, se puede lograr la expansión de la estructura interna y las funciones externas del objeto al tiempo que se garantizan los principios de encapsulación y abstracción, logrando así la actualización de los objetos desde abajo; a alto. Método de programación orientado a objetos En el diseño interno del módulo de entrada de datos, se adopta un método de diseño orientado a objetos. [6] Los conceptos básicos de la orientación a objetos son los siguientes: Objeto: Un objeto es cualquier cosa que vaya a ser estudiada. Desde un libro hasta una biblioteca, un único número entero hasta una enorme base de datos de secuencias de números enteros, fábricas automatizadas extremadamente complejas y transbordadores espaciales pueden considerarse objetos. No solo pueden representar entidades tangibles, sino también objetos intangibles (abstractos). , planes o eventos. Un objeto consta de datos (que describen los atributos de las cosas) y operaciones que actúan sobre los datos (que reflejan el comportamiento de las cosas). Desde el punto de vista del programador, el objeto es un módulo de programa. Desde el punto de vista del usuario, el objeto le proporciona el comportamiento deseado. Las operaciones dentro de un par suelen denominarse métodos. Clase: una clase es una plantilla para un objeto.
Características y problemas de los métodos de diseño orientado a objetos Los métodos de diseño orientado a objetos se basan en objetos y utilizan herramientas de software específicas para completar directamente la conversión de la descripción de objetos a estructuras de software. Esta es la característica y el logro más importante del método de diseño orientado a objetos. La aplicación de métodos de diseño orientado a objetos resuelve el problema de la inconsistencia entre las herramientas de descripción del mundo objetivo y las estructuras de software en los métodos de desarrollo estructurados tradicionales, acorta el ciclo de desarrollo y resuelve el complicado proceso de múltiples conversiones y asignaciones desde el análisis y el diseño a las estructuras de los módulos de software. , es un método de desarrollo de sistemas prometedor. Sin embargo, al igual que el método prototipo, el método de diseño orientado a objetos requiere cierto soporte de software básico antes de poder aplicarse. Además, en el desarrollo de MIS a gran escala, si no existe una división general de arriba hacia abajo, sino un enfoque orientado a objetos. Se adopta de abajo hacia arriba desde el principio. Los métodos de diseño para desarrollar sistemas también causarán problemas como una estructura del sistema irrazonable y relaciones desequilibradas entre varias partes. Por lo tanto, los métodos de diseño orientado a objetos y los métodos estructurados siguen siendo dos métodos interdependientes e insustituibles en el campo del desarrollo de sistemas.