En términos generales, la arquitectura de tres niveles en realidad divide toda la aplicación empresarial en una capa de presentación, una capa de lógica empresarial y una capa de acceso a datos.
La arquitectura de tres niveles agrega una "capa intermedia" entre el cliente y la base de datos, también llamada capa de componentes. El sistema de tres niveles mencionado aquí no se refiere al sistema físico de tres niveles, o simplemente a tres máquinas o a una arquitectura de tres niveles, y no es sólo la aplicación B/S la arquitectura de tres niveles, la arquitectura de tres niveles. El nivel se refiere a las tres capas lógicas, incluso si estas tres capas se colocan en una máquina.
Tres capas ordinarias: Capa de acceso a datos DAL: se utiliza para interactuar y acceder a la base de datos, obtener datos de la base de datos o guardar datos en la base de datos. Capa de lógica empresarial BLL: la capa de lógica empresarial es un vínculo entre las capas superior e inferior y se utiliza para procesar lógicamente los datos interactivos superiores e inferiores para lograr los objetivos comerciales. UI de la capa de presentación: implementa principalmente la interacción con los usuarios, recibe solicitudes de los usuarios o devuelve la visualización de los resultados de datos solicitados por los usuarios, mientras que el procesamiento de datos específico se entrega a la capa de lógica empresarial y a la capa de acceso a datos. Modelo de entidad comercial: una estructura de datos utilizada para encapsular clases de entidad. Generalmente se usa para mapear tablas o vistas de bases de datos para describir objetos objetivos en el negocio. La separación de modelos sirve para un mejor desacoplamiento, un mejor desempeño del papel de capas, una mejor reutilización y expansión y una mayor flexibilidad. Universal: una clase de herramienta auxiliar universal.
Modo de ingeniería: El modo de método de fábrica, también conocido como modo de método de fábrica estático, es un modo de creación de clases que generalmente devuelve diferentes instancias de la clase en función de una condición (parámetro).
El rol de fábrica (creador)
es el núcleo del patrón del método de fábrica y es responsable de crear instancias de todas las clases de productos específicas. El mundo exterior puede llamar directamente a la clase de fábrica para crear los objetos de producto requeridos.
Producto abstracto (producto)
es la clase principal de todos los roles de producto específicos, que es responsable de describir la interfaz pública propiedad de todas las instancias.
Rol de producto específico (producto específico)
Heredado del rol de producto abstracto, generalmente hay múltiples roles, que es el objetivo de creación del patrón del método de fábrica. La clase de fábrica devuelve el producto específico del rol.
Normalmente, el cliente no interactúa directamente con la base de datos, sino que establece una conexión con la capa intermedia a través de comunicación COM/DCOM y luego intercambia con la base de datos a través de la capa intermedia.
Los requisitos para una estructura completa de tres niveles son: modificar la capa de presentación no modifica la capa lógica y modificar la capa lógica no modifica la capa de datos. De lo contrario, es difícil saber si su aplicación tiene una estructura de múltiples capas o si hay un problema con la división y organización de la estructura de capas. Diferentes aplicaciones tienen diferentes interpretaciones. Ésta es una cuestión conceptual.
Conceptualmente hablando, los modelos en los sistemas MVC se pueden dividir en dos categorías: el estado interno del sistema y las acciones que cambian el estado del sistema. El modelo es donde residen todos los fragmentos de código de lógica empresarial. Este artículo proporciona objetos de entidad comercial y objetos de procesamiento comercial para este modelo: todos los objetos de procesamiento comercial son subclases derivadas de la clase ProcessBase. El objeto de procesamiento de negocios encapsula una lógica de procesamiento específica, llama al modelo de lógica de negocios y envía la respuesta al componente de vista apropiado para generar la respuesta. Los objetos de entidad comercial pueden describir los datos del formulario del cliente definiendo propiedades. Todos los objetos de entidad comercial son objetos de subclase derivados de EntityBase. Los objetos de procesamiento comercial pueden leerlos y escribirlos directamente sin interacción de datos con los objetos de solicitud y respuesta. Los objetos de entidad comercial admiten la interacción entre vistas y modelos. La implementación separa el "qué" (procesamiento empresarial) y el "cómo" (entidades comerciales). Esto permite la reutilización de la lógica empresarial. Dado que el negocio específico de cada aplicación es diferente, aquí no se enumeran ejemplos de código específicos.
MVC (Modelo-Vista-Controlador) es un patrón de diseño que se puede utilizar para distinguir objetos de dominio y objetos de capa de presentación de UI. También a nivel arquitectónico se parecen en que ambos tienen una capa de presentación, pero su diferencia radica en las otras dos capas. El concepto de controlador no está definido en la arquitectura de tres niveles. Aquí es donde me siento más diferente. Además, MVC no considera el acceso lógico del negocio como dos capas. Esta es la principal diferencia entre usar una arquitectura de tres capas o MVC para construir un programa. Por supuesto. Los modelos también se mencionan en la arquitectura de tres niveles, pero el concepto de modelo en la arquitectura de tres niveles es diferente al de MVC. La capa de modelo típica en las "tres capas" consta de clases de entidad, mientras que en MVC consta de lógica empresarial y datos de acceso.
Escrito en el marco MVC en ASP NET, tiene una excelente escalabilidad.
Puede implementar fácilmente las siguientes funciones: ① Implementar múltiples vistas de un modelo; (2) Usar múltiples controladores ③ Cuando el modelo cambie, todas las vistas se actualizarán automáticamente ④ Todos los controladores funcionarán de forma independiente; Ésta es la ventaja de la arquitectura MVC. Puede agregar fácilmente muchas características del programa modificando ligeramente el programa anterior o agregando nuevas clases. Muchas clases desarrolladas en el pasado se pueden reutilizar, pero no es necesario cambiar la estructura del programa. Las clases son independientes entre sí, lo que facilita el desarrollo del grupo y mejora la eficiencia del desarrollo. A continuación se analiza cómo implementar un modelo, dos vistas y un programa de controlador. La clase de modelo y la clase de vista no necesitan modificarse en absoluto, son exactamente iguales a la anterior. Ésta es la ventaja de la programación orientada a objetos. Para la clase en el controlador, simplemente agregue otra vista y asóciela con el modelo. El diagrama esquemático entre la vista, el controlador y el modelo en este modo se muestra en la Figura 2. También se pueden implementar otras formas de MVC, como un modelo, dos vistas y dos controladores. Como se puede ver en lo anterior, las aplicaciones implementadas a través de la arquitectura MVC tienen una excelente escalabilidad y son la dirección futura de la programación orientada a objetos ASP NET.
Las desventajas de MVC son: (1) Mayor complejidad de la estructura y la implementación del sistema. Para una interfaz simple, seguir estrictamente MVC y separar el modelo, la vista y el controlador aumentará la complejidad de la estructura, puede generar demasiadas operaciones de actualización y reducir la eficiencia operativa. (2) La conexión entre la vista y el controlador es demasiado estrecha. Las vistas y los controladores están separados entre sí, pero estrechamente relacionados. Las vistas tienen una aplicación muy limitada sin la presencia de controladores, y viceversa, lo que dificulta su reutilización independiente. 3) Acceso ineficiente a los datos del modelo mediante vistas. Dependiendo de la interfaz de usuario del modelo, puede que sea necesario llamar a la vista varias veces para obtener suficientes datos de visualización. El acceso innecesariamente frecuente a datos no modificados también puede perjudicar el rendimiento operativo. (4) Actualmente, las herramientas o constructores generales de interfaz de alto nivel no admiten la arquitectura MVC. Adaptar estas herramientas para satisfacer las necesidades de MVC y construir componentes individuales es muy costoso, lo que dificulta el uso de MVC.
La arquitectura de tres niveles divide el código en tres partes según funciones, y cada parte resuelve su propio proceso. La función de la arquitectura de tres niveles es controlar la estructura de grandes programas web y hacerlos fáciles de administrar y expandir.
Al diseñar la UI, no necesitamos preocuparnos por problemas de lógica y datos, solo necesitamos dejar la ubicación correspondiente para colocar los datos. Al modificar el diseño, solo necesita resolver la estructura del HTML. El código se ve limpio y ordenado, y también es limpio y ordenado de ejecutar.
La interfaz de usuario envía directamente la tarea de la lógica del programa al BLL, y el BLL comienza a construir los detalles de implementación específicos. La creación de BLL depende del negocio. Por ejemplo, un sistema de artículos, BLL_Article, significa que se utiliza para procesar artículos. BLL_article puede proporcionar a la interfaz de usuario un conjunto de registros de lista de artículos, que se muestra en la posición reservada de la interfaz de usuario. Cuando la partícula BLL necesita obtener datos de la base de datos, envía la tarea a la capa DAL.
La capa DAL es la encargada de procesar la base de datos. Obtiene parámetros de BLL, organiza SQL válido, establece una conexión de base de datos, ejecuta SQL para actualizar u obtener y entrega los datos devueltos a BLL.
Cada parte del negocio se concentra en una cadena UI-BLL-DAL, que es clara de arriba a abajo. En cuanto a cómo facilitar la gestión y la expansión, se analizarán ejemplos más adelante.
Las formas de vida complejas deben tener leyes de supervivencia complejas. Si desea aplicar la arquitectura de tres niveles en su propio proyecto, debe utilizar Dim Sum para experimentar las reglas de aplicación.
Mi comprensión de la arquitectura de tres niveles no es lo suficientemente profunda. Estos artículos pueden considerarse una inspiración. Al leer, no se limite a las reglas que he concebido, practíquelas en aplicaciones específicas y encuentre sus propias reglas basadas en situaciones específicas. Si sientes algo, recuerda escribirlo. Este sentimiento es una oportunidad de progreso, pero no necesariamente un resultado final. Si lo sientes, puedes aplicarlo, descubrir sus fortalezas y debilidades y seguir mejorando.
La arquitectura de tres capas tiene mayores ventajas que la arquitectura de doble capa o de una sola capa. La estructura de tres niveles es adecuada para el desarrollo del grupo. Todos pueden tener diferentes divisiones del trabajo y la cooperación puede duplicar la eficiencia. Al desarrollar aplicaciones de dos o de un solo nivel, cada desarrollador debe tener un conocimiento profundo del sistema, lo que requiere altas capacidades. Al desarrollar aplicaciones de tres niveles, se pueden combinar talentos de varios campos. Solo se necesitan unas pocas personas para tener una comprensión completa del sistema, lo que reduce en cierta medida la dificultad del desarrollo.
La arquitectura de tres niveles pertenece al modelo de cliente ligero. El cliente sólo necesita un disco duro más pequeño, una memoria más pequeña y una CPU más lenta para obtener un buen rendimiento. Por el contrario, los clientes monocapa o gordos tienen exigencias demasiado altas en cuanto a equipamiento facial.
Otra ventaja de la arquitectura de tres niveles es que puede soportar mejor los entornos informáticos distribuidos. Las aplicaciones de capa lógica pueden ejecutarse en varias máquinas, utilizando al máximo las capacidades informáticas de la red. La informática distribuida tiene un enorme potencial y es mucho más eficaz que actualizar la CPU.
La mayor ventaja de la arquitectura de tres niveles es la seguridad. El cliente sólo puede acceder a la capa de datos a través de la capa lógica, lo que reduce los puntos de entrada y protege muchas funciones peligrosas del sistema.
Shi Mingyuan respondió