El diseño orientado a objetos en C# es un desastre
Lo encontré en Internet y también lo tengo en mi ordenador
C# y lenguaje de programación orientado a objetos
C# es un lenguaje de programación orientado a objetos puro lenguaje de programación, que realmente encarna el espíritu de "todo es un objeto". En C#, incluso los tipos de datos más básicos, como los tipos int, double y bool, pertenecen al tipo System.Object. Además, al utilizar la programación C#, no existe ningún proceso fuera del objeto. Por lo tanto, para aprender C#, es necesario tener un pensamiento orientado a objetos. Si no comprende el llamado "pensamiento orientado a objetos", es imposible comprender la esencia de C#, y su comprensión de C# solo puede limitarse a. la superficie de las características del lenguaje.
A muchos libros y artículos que explican el pensamiento orientado a objetos les gusta comparar el pensamiento orientado a objetos con el orientado a procesos. Sin embargo, para los principiantes que aprenden programación, esto es completamente innecesario. En realidad, una hoja de papel en blanco es más propicia para el desarrollo futuro que una hoja de papel llena de palabras.
¿Qué es entonces el "pensamiento orientado a objetos"? La esencia es, por supuesto, el significado de "todo es un objeto". El desarrollo y diseño de software se llevan a cabo en torno a los objetivos de desarrollo. Por ejemplo, al desarrollar un sitio web de comercio electrónico, debemos operar y preocuparnos por todo lo relacionado con el comercio electrónico. Productos, pedidos, usuarios, catálogos, carritos de compras, etc., son todos objetos. Si desea desarrollar un foro, entonces los elementos necesarios en el foro, como categorías, temas, publicaciones, comentarios y usuarios del foro, son todos objetos. Desde una perspectiva pequeña, debemos escribir un algoritmo para calcular el factorial, por lo que el valor inicial, el resultado de la operación y todo el algoritmo son objetos.
Entonces, ¿qué cualidades tiene el objeto? En términos generales, un objeto debe tener propiedades y comportamientos. Tomando el mundo real como ejemplo, las "personas" como animales especiales también son lo que llamamos "objetos". Este objeto tiene muchos atributos, como nombre, altura, peso, etnia, nacionalidad, fecha de nacimiento, etc. En cuanto al comportamiento, puede ser caminar, comer, correr o incluso jugar o jugar al fútbol. Desde un punto de vista semántico, los atributos están más en la categoría de sustantivos, mientras que los comportamientos están más cerca de los verbos. Sin embargo, también hay casos especiales de objetos que sólo tienen atributos o sólo comportamientos. Por ejemplo, una tarjeta de identificación solo puede tener atributos como nombre, fecha de nacimiento, lugar de origen, número de identificación, etc., pero ningún comportamiento. Por ejemplo, “volar” es una acción en sí misma, pero también puede considerarse un comportamiento.
Sin embargo, esta división no es absoluta. Dependiendo de la situación real, las propiedades y comportamientos de un mismo objeto pueden ser diferentes. Por ejemplo, si es la misma "persona" y queremos desarrollar un sistema de gestión de registro de hogares, no tenemos que considerar comportamientos como caminar, comer, correr, etc., pero si es un partido de fútbol, entonces el El objeto "persona" necesita varias acciones de jugar al fútbol como comportamiento del objeto. Otro ejemplo es el objeto "Tarjeta de identificación". Para facilitar su uso, se le puede agregar un comportamiento como "IsValidate".
También cabe señalar que muchas veces el atributo en sí es en realidad un objeto. Por ejemplo, el nombre puede ser de tipo cadena, que pertenece al tipo de objeto Sytem.Object. También podemos crear una clase. objeto para el nombre por separado:
Nombre de clase pública
{
cadena pública Nombre;
cadena pública Segundo Nombre;
public string LastName;
}
En C#, existen varios tipos de objetos además de los tipos básicos proporcionados por él mismo, también admite la personalización de varios tipos, incluida la clase. , estructura y enumeración, interfaz, delegado, evento. Mirando el ejemplo anterior, el objeto Persona se puede definir como un tipo de clase y la nacionalidad se puede definir como un tipo de enumeración. Las tarjetas de identificación sin comportamiento también se pueden definir como tipos de estructura. La acción "volar" se puede definir como un tipo de interfaz.
En cuanto a delegado y evento, son tipos de objetos especiales. Por ejemplo, podemos definir una serie de eventos para el sistema de gestión del foro, como BeforePost, AfterPost, etc. Explicaré estos contenidos en detalle más adelante.
Para dominar el pensamiento orientado a objetos, debes tener la capacidad de identificar objetos en el sistema. En el sistema que queremos desarrollar, cuáles deben definirse como objetos separados y qué atributos y comportamientos debe tener este objeto son dolores de cabeza para los principiantes. Para identificar correctamente los objetos, primero es necesario analizar las funciones que debe implementar el sistema. Por ejemplo, requerimos el desarrollo de un sistema de comercio electrónico con los siguientes requisitos funcionales:
1. Admitir la función de consulta de productos
2. debe registrarse como usuario e iniciar sesión;
3. Si el producto no está actualmente en stock, el usuario puede hacer una reserva;
4. en el carrito de compras;
5. El usuario compra antes de comprar el producto, debe enviar un pedido.
6. información del pedido al usuario vía correo electrónico;
7. El usuario puede agregar comentarios sobre el producto.
Un método sencillo que puede ayudarnos a identificar objetos es conocer los términos clave en estas descripciones funcionales, como productos, usuarios, carritos de compra, pedidos y comentarios. Estas palabras pueden cubrir básicamente los principales objetos de este sistema de comercio electrónico. En cuanto a las propiedades del objeto, puede examinar los requisitos del sistema para el objeto y la información que requiere. Por ejemplo, un producto debe tener un nombre de producto, precio, imágenes relacionadas, categoría, inventario, etc. En cuanto al comportamiento, también podemos buscar verbos asociados a estos sustantivos objeto a partir de la descripción funcional. Por ejemplo, si consulta un producto, significa que el producto tiene un comportamiento de búsqueda. El registro e inicio de sesión de usuario significa que el usuario tiene estos dos comportamientos: Registrarse e Iniciar sesión. Por supuesto, el comportamiento implícito también incluye SignOut.
Para identificar realmente buenos objetos, tal vez necesitemos dominar el conocimiento de UML y saber escribir casos de uso. O utilice métodos de programación extremos para escribir historias de usuarios una por una y luego identificarlas una por una. Pero este conocimiento parece demasiado difícil para los principiantes. Ahora sabemos que existe tal método. Lo que más espero es que los lectores puedan establecer la idea de "todo es un objeto" después de leer esta sección. Finalmente, espero que todos puedan considerar el reconocimiento de objetos como un crucigrama. La clave no es cuál es la respuesta, la diversión está en el juego.
El pensamiento orientado a objetos es profundo y profundo, y no se puede explicar claramente en pocas palabras. Pero establecer tal pensamiento debe existir en tu corazón, lo que implica una especie de "iluminación maravillosa". Tal vez no te hayas dado cuenta del verdadero significado de la orientación a objetos después de escribir cientos de pequeños programas, pero en un instante, de repente lo entiendes y sientes la alegría de separar las nubes y ver la luna. No quiero ser críptico. A veces, desarrollar software realmente requiere un poco de inspiración. Algunas personas dicen que la programación es un arte y estoy de acuerdo. Entonces, cuando llegue esta "maravillosa iluminación", no puedo saber la respuesta con certeza. Esto requiere su comprensión. Sin embargo, este tipo de comprensión no tiene nada que ver con el Zen. No necesitas simplemente meditar todos los días. Deberías ser más práctico y escribir más programas, y lo entenderás poco a poco.