大家好,关于ddd模型分析交易平台很多朋友都还不太明白,今天小编就来为大家分享关于领域模型驱动设计(DDD)之模型提炼的知识,希望对各位有所帮助!
本文目录
一、领域模型驱动设计(DDD)之模型提炼
1、当Java世界提供的可选择性框架平台越来越多时我们可能被平台架构所深深困扰而无暇顾及软件的真正核心业务建模其实业务领域建模同样是一个比平台架构更复杂更需要学习的新的领域
相反在实践中我们技术人员在经过冗长的平台架构学习和实践后就匆忙开始项目开发这时是什么指导他们进行软件业务实现呢?大部分可能是依赖数据库建模甚至是复杂冗长的数据库存储过程设计这些已经开始走向面向对象分析设计的反方向走上了一条错误的软件开发方向最终开发出缓慢的经常当机的Java企业系统
2、相反在实践中我们技术人员在经过冗长的平台架构学习和实践后就匆忙开始项目开发这时是什么指导他们进行软件业务实现呢?大部分可能是依赖数据库建模甚至是复杂冗长的数据库存储过程设计这些已经开始走向面向对象分析设计的反方向走上了一条错误的软件开发方向最终开发出缓慢的经常当机的Java企业系统
3、如果你没有恰当的OO设计思想 Java就会用性能惩罚你这可能是Java世界的一个潜规则
4、那么一个正确的OOA/OOD/OOP步骤是什么呢?目前围绕模型驱动设计(MDD)的设计思想成为主流思想 MDA更是在MDD基础上提升和升华下面让我们首先了解如何使用领域驱动设计思想来分析设计一个软件系统
5、当我们不再对一个新系统进行数据库提炼时取而代之的时面向对象的模型提炼我们必须大刀阔斧地对业务领域进行细分将一个复杂的业务领域划分为多个小的子领域同时还必须分清重点和次要部分抓住核心领域概念实现重点突破
6、精简模型找出核心领域将业务需求中最有价值的概念体现出来让核心变精要这实际就是一个使复杂问题变简单的过程也是对我们软件设计人员真正能力的考验
7、核心领域模型不是轻易能够发现特别是他处于一个纷乱复杂的众多领域模型结构中时核心模型通常是我们某个子领域关注的重点例如订单模型是订单管理领域的核心消息模型是论坛或消息领域系统的核心
8、目前分析领域有很多模式来帮助我们来提炼核心模型例如四色原型 Martin Fowler的分析模式等例如MF的分析模式(Analysis Patterns)中的记帐模型就是不仅仅用来记录账目数值而且可以记录和控制账目的每一次修改而四色原型则是一种高于分析模式的一种原型基本模式下面是本人根据四色原型提炼的核心领域模型概念
9、一般情况下在企业应用中核心模型总是在其周围围绕一些所谓的卫星这实际上也是来自四色原型的一个推论核心模型和其卫星的类图如下
10、根据Eric Evans在其领域驱动设计一书中定义领域模型划分为实体和值对象两种实体模型是指业务领域中具有独立属性的对象而值对象则可能是一种Description或状态或规则只要有实体对象就可能存在实体的状态状态跟踪有时成为一个业务领域使用计算机软件的首要跟踪但是数据库不是对象状态的唯一表达方式只是一种存储方式(见状态对象数据库的替代者)
11、图中实体核心对象大部分可能有一种类型例如核心模型是产品那么存在产品目录核心模型是消息就存在消息类型核心模型是信息总存在信息类别我们总是使用分类方式来管理业务领域的信息有时类别甚至复杂到树形结构
12、核心实体模型有时会有一个:N关联的子实体一般可能表达实体的细节例如核心模型是订单那么存在订单条目这样一个细节一个订单中可能有多个订单条目如果核心模型是信息那么存在该信息的多个回复或评论这样的关联一般存在多个业务领域中
13、原来我们以为分析设计阶段无需了解实现细节分析人员只要闷头做分析UML图而无需顾及如何具体实现其实这是一个误区
14、 Eric Evans在其领域驱动设计一书中认为分析人员负责从领域中收集基本概念设计则必须指明一组适应编程工具构造的组件以及这些组件必须能够在目标环境中有效执行模型驱动设计(Model Driven Design)抛弃了分裂分析模型与设计的做法使用单一的模型来满足这两方面的要求因此对于核心模型必须掌握了解其实现细节
15、从另外一个方面来说中国的客户总是从界面设计来表达他们的意图(如果中国客户能够使用Use Case等UML图来表达他们概念真是不可想象)例如客户会说我希望有一个界面让我将订单数据输入然后能够查询符合查询条件的订单因此我们的核心模型至少能够顺利地映射到界面实现相反这个客户有这样订单界面要求但是你没有提供一个与之适应的核心实体模型界面实现将变得复杂甚至走很多弯路诞生不少DTO垃圾对象
16、以JdonFramework框架实现为例子框架提供了围绕核心模型的新增删除修改查询(CRUD)功能以及批量功能的快速实现尤其CRUD功能实现前提是必须提炼出核心模型从而其界面设计流程就能通过配置立即实现这样一步到位实现领域模型到界面的过渡可以将我们设计核心模型和客户要求的界面需求能够做到完整的统一
17、开源JdonFramework下载包中message案例实际就是上述核心模型图的一种实现项目更复杂的项目可以认为是核心模型的重叠和反复使用(从原理上讲核心模型是四色原型的体现而四色原型被认为是大部分企业系统的基本组成元素见[book][UML][Peter Coad]Java Modeling in Color with UML)
18、实际项目中会存在多个核心模型的重叠和覆盖使用主要取决于你的领域关注重点
19、例如当客户和我们说要做一个旅游网站时我们必须充分了解需求它的软件系统重点是哪些功能如果当他首先说我需要一个酒店设备的查询系统因为他的客户对酒店设备非常关注那么我们可能认为酒店设备是这个领域模型的核心酒店设备如果他又进行描述我需要一个界面客户在输入酒店资料时选择多个酒店设备那么在这样一个关注领域核心模型实际是酒店而酒店设备可能成为酒店的一个特征实体属性甚至是值对象了
20、以进销存系统为例子在采购系统中采购单是一个核心实体模型而原材料是一种辅助实体模型在库存系统中入出库单是一个核心实体模型原材料或成品代表的是一个库存物品概念模型当需要库存报表查询输出可以立即计算出来或将结果缓存起来缓存起来的结果其实是库存物品对象的状态可以使用值对象来实现
二、为什么ddd42无法显示模型数据
DDD42出现CoM无法显示的问题,可能是由于软件兼容性问题、组件未正确安装或配置、系统资源限制,或者是由于软件本身的bug导致的。
当我们遇到“DDD42出现CoM无法显示”这样的技术问题时,首先要考虑的是可能的原因和解决方案。以下是对该问题可能原因的详细分析:
1.软件兼容性问题:CoM(Component Object Model)是微软提供的一种用于实现对象间通信和跨进程通信的技术。如果DDD42软件与操作系统或其他软件存在兼容性问题,就可能导致CoM组件无法正常显示。例如,某些旧版本的软件可能无法在新版本的操作系统上正确运行。
2.组件未正确安装或配置:CoM组件需要正确安装和配置才能正常工作。如果安装过程中出现问题,或者配置不正确,就可能导致组件无法正确显示。例如,在安装过程中如果缺少必要的文件或注册表项,就可能导致组件无法加载。
3.系统资源限制:如果系统资源(如内存、CPU等)不足,就可能导致软件无法正常运行,包括CoM组件的显示。例如,当系统内存不足时,操作系统可能会终止某些进程以释放资源,这可能导致DDD42中的CoM组件无法正常显示。
4.软件本身的bug:任何软件都可能存在bug,包括DDD42。如果软件本身存在bug,就可能导致各种意外情况,包括CoM组件无法正常显示。例如,如果软件开发人员在编写代码时犯了错误,就可能导致软件在运行时出现不可预见的问题。
为了解决这个问题,我们可以尝试以下方法:检查软件的兼容性要求,确保操作系统和其他软件满足要求;重新安装或修复软件,确保所有组件都正确安装和配置;优化系统资源分配,确保软件有足够的资源运行;联系软件供应商获取支持,了解是否存在已知的bug和解决方案。
通过以上分析和解决方案,我们希望能帮助您解决DDD42出现CoM无法显示的问题。在实际操作中,可能需要根据具体情况灵活调整解决方案。
好了,关于ddd模型分析交易平台和领域模型驱动设计(DDD)之模型提炼的问题到这里结束啦,希望可以解决您的问题哈!
声明:本文内容来自互联网不代表本站观点,转载请注明出处:https://www.41639.com/15_301619.html
