Red de Respuestas Legales - Leyes y reglamentos - Refinamiento del modelo de diseño basado en modelos de dominio (DDD)

Refinamiento del modelo de diseño basado en modelos de dominio (DDD)

A medida que el mundo Java proporciona cada vez más plataformas marco opcionales, es posible que estemos profundamente preocupados por la arquitectura de la plataforma y no tengamos tiempo para considerar el modelado comercial central real del software. De hecho, el modelado del dominio comercial también es más complejo que la arquitectura de la plataforma. y necesita aprender nuevas áreas

Por el contrario, en la práctica, nuestros técnicos se apresuran a comenzar el desarrollo del proyecto después de un largo aprendizaje y práctica de la arquitectura de la plataforma. En este momento, ¿qué los guía para implementar el negocio de software? La mayoría de ellos pueden depender del modelado de bases de datos o incluso del diseño de procedimientos almacenados de bases de datos complejos y extensos. Estos han comenzado a moverse en la dirección opuesta al análisis y diseño orientados a objetos y se han embarcado en una dirección de desarrollo de software equivocada, desarrollando finalmente una lenta empresa Java. sistemas que a menudo fallan.

Si no tienes ideas adecuadas de diseño OO, Java te castigará con el rendimiento. Esta puede ser una regla tácita en el mundo Java

Entonces, ¿qué es? ¿Un paso correcto de OOA/OOD/OOP? En la actualidad, el pensamiento de diseño en torno al diseño impulsado por modelos (MDD) se ha convertido en el pensamiento principal. MDA se mejora y sublima sobre la base de MDD. Primero comprendamos cómo utilizar el pensamiento de diseño impulsado por dominios para analizar y diseñar un sistema de software. /p>

Cuando en lugar de refinar la base de datos para un nuevo sistema, se requiere el refinamiento del modelo orientado a objetos, debemos subdividir radicalmente el dominio empresarial y dividir un dominio empresarial complejo en varios subdominios pequeños al mismo tiempo. También debemos distinguir entre áreas clave y secundarias. Comprender parcialmente los conceptos del dominio central para lograr avances clave.

Modelo de dominio central

Simplificar el modelo para encontrar el. dominio central y refleja los conceptos más valiosos en las necesidades comerciales. Hacer que el núcleo sea esencial es en realidad un proceso para simplificar problemas complejos y también es una prueba de la capacidad real de nuestros diseñadores de software.

El modelo de dominio central No es fácil de descubrir, especialmente en un campo complejo y complejo, en la estructura del modelo, el modelo central suele ser el foco de uno de nuestros subcampos. Por ejemplo, el modelo de pedido es el núcleo del campo de gestión de pedidos. El modelo de mensaje es el núcleo del foro o sistema de campo de mensajes.

Hay muchos modelos en el campo de análisis que nos ayudan a refinar los modelos centrales, como el prototipo de cuatro colores, el patrón de análisis de Martin Fowler, etc. Por ejemplo, el modelo de contabilidad en Patrones de análisis de MF no solo se utiliza para registrar los valores de la cuenta, sino que también puede registrar y controlar cada modificación de la cuenta. El prototipo de cuatro colores es un modelo prototipo básico que es superior al modelo de análisis. A continuación se muestra el concepto del modelo de dominio central que perfeccioné basándose en el prototipo de cuatro colores.

En términos generales, en las aplicaciones empresariales, el modelo central siempre está rodeado por algunos El llamado satélite es en realidad una inferencia de. el prototipo de cuatro colores El modelo central y su diagrama de clases satélite son los siguientes

 

Según la definición de dominio de Eric Evans en su libro Domain-Driven Design, el modelo está dividido. en entidades y objetos de valor. Los modelos de entidad se refieren a objetos con atributos independientes en el dominio empresarial, mientras que los objetos de valor pueden ser una descripción, un estado o una regla. Siempre que exista un objeto de entidad, el estado de la entidad puede existir. El seguimiento del estado a veces se convierte en un negocio. El dominio utiliza software informático principalmente para el seguimiento, pero la base de datos no es la única representación del estado del objeto, solo un método de almacenamiento (ver alternativas a la base de datos de objetos del estado)

La mayor parte del núcleo de la entidad Los objetos en el diagrama pueden tener un tipo, como núcleo. Si el modelo es un producto, entonces hay un catálogo de productos. Si el modelo principal es un mensaje, hay un tipo de mensaje. El modelo principal es información. categorías Siempre utilizamos métodos de clasificación para gestionar la información en el campo empresarial. A veces las categorías son incluso tan complejas como una estructura de árbol.

El modelo de entidad central a veces tiene una subentidad asociada :N que generalmente puede expresar. los detalles de la entidad Por ejemplo, si el modelo principal es un pedido, entonces existe un detalle como un artículo de pedido. Puede haber varios artículos de pedido en un pedido. Si el modelo principal es información, entonces existe dicha información. Las asociaciones como múltiples respuestas o comentarios generalmente existen en múltiples campos comerciales

Implementación de la interfaz del modelo

Resulta que nosotros.

Se cree que no es necesario comprender los detalles de implementación durante la fase de análisis y diseño. Los analistas solo deben concentrarse en analizar los diagramas UML sin considerar cómo implementarlos. De hecho, esto es un malentendido.

Eric Evans cree en su libro Domain-Driven Design que los analistas son responsables de analizar el dominio para recopilar conceptos básicos, el diseño debe especificar un conjunto de componentes que se adapten a la construcción de herramientas de programación, y estos componentes deben poder realizar el modelo de manera efectiva. Diseño impulsado por modelos (Model Driven Design) en el entorno de destino. Abandona la práctica de dividir modelos de análisis y diseños y utiliza un solo modelo para cumplir. Estos dos aspectos requieren que el modelo central comprenda sus detalles de implementación.

Por otro lado, los clientes chinos siempre expresan sus intenciones a través del diseño de la interfaz (si los clientes chinos pueden usar casos de uso, etc. Es inimaginable usar diagramas UML para expresar sus conceptos). Por ejemplo, un cliente dirá: Espero que haya un interfaz que me permite ingresar datos del pedido y luego poder consultar pedidos que cumplan con las condiciones de consulta. Por lo tanto, nuestro modelo central al menos se puede asignar sin problemas a la implementación de la interfaz. Por el contrario, este cliente tiene el pedido. La interfaz lo requiere, pero no proporciona un modelo de entidad central para adaptarse a ella. La implementación de la interfaz se volverá complicada e incluso tomará muchos desvíos y producirá una gran cantidad de objetos basura DTO.

Tome la implementación del marco JdonFramework como ejemplo. , el marco proporciona alrededor del núcleo La nueva función Eliminar consulta de modificación (CRUD) del modelo y la rápida implementación de la función por lotes, especialmente la función CRUD, deben refinarse para que el modelo central deba extraerse para que su proceso de diseño de interfaz se puede implementar inmediatamente a través de la configuración, de esta manera, la transición del modelo de dominio a la interfaz se puede realizar en un solo paso. El modelo central de nuestro diseño y los requisitos de interfaz requeridos por los clientes se pueden unificar por completo. El caso del mensaje en el paquete de descarga JdonFramework de código abierto es en realidad un proyecto de implementación del diagrama del modelo central anterior. Los proyectos más complejos pueden considerarse como modelos centrales de superposición y uso repetido (en principio, el modelo central es la encarnación de los cuatro colores). El prototipo y el prototipo de cuatro colores se consideran el elemento componente básico de la mayoría de los sistemas empresariales. Ver [libro][UML][Peter Coad]Modelado Java en color con UML)

Selección de modelos centrales<. /p>

En proyectos reales, habrá superposición y cobertura de múltiples modelos centrales, lo que depende principalmente del enfoque de su campo

Por ejemplo, cuando un cliente nos dice que queremos construir un sitio web de viajes, debemos comprender completamente los requisitos y en qué funciones se centra su sistema de software. Si primero dice que necesito un sistema de consulta para equipos hoteleros porque sus clientes están muy preocupados por los equipos hoteleros, entonces podemos pensar que los equipos hoteleros son el núcleo. Equipo de hotel de este modelo de campo Si lo describe nuevamente, necesito una interfaz donde los clientes puedan seleccionar múltiples equipos de hotel al ingresar información del hotel. En tal campo de enfoque, el modelo central es en realidad un hotel, y el equipo de hotel puede convertirse en un. característica del hotel. Los atributos de la entidad son incluso objetos de valor

Tome el sistema de compras, ventas e inventario como ejemplo. En el sistema de compras, la orden de compra es un modelo de entidad central y las materias primas son un modelo. modelo de entidad auxiliar, las órdenes de entrada y salida son un modelo de entidad central, la materia prima o el producto terminado representa un modelo conceptual de artículos de inventario. Cuando se requiere la salida de una consulta de informe de inventario, la salida se puede calcular inmediatamente o los resultados. almacenarse en caché Los resultados almacenados en caché son en realidad el estado de los objetos de elementos del inventario, que se pueden implementar utilizando objetos de valor

Refinando el modelo central lishixinzhi/Article/program/Java/gj/201311/27660

.