贫血模型和充血模型贫血模型:指的是领域对象只包含了对象的特征,而没有对象的行为。即 POJO 中只有对象的属性和属性的 get/set 方法,所有的业务逻辑都放在业务层。优点:各层次之间松耦合,结构清晰,领域对象只是用作存放和传输的载体。缺点:只有属性没有行为的对象是没有生命的,这样的对象不是真正的对象,而且业务逻辑层将会十分庞大。使用方式:在对象的外围构建一个 Facade 层还封装对象的某些原
转载
2023-09-27 22:42:01
108阅读
概述:最近一直在搞Java-DDD模式开发的方案落地;个人的理解,DDD模式中,只要关注三个模块即可:A. application:应用层,可以是http接口服务,也可以是grpc服务接口,甚至是rpc服务;B. domain:领域层,主要是领域业务的具体实现,跟上层的应用没有任何关系;C. infrastructure:基础服务层,包括项目中的持久化之类的代码;那么,如何将这三层进行较好的解耦,
转载
2023-08-08 08:37:28
131阅读
最近开始筹备一个电商项目. 其实是公司的老本行了. 但今年公司希望在做项目的同时, 沉淀出一套针对电商的基础产品. 这样可以提高新项目的开发效率, 减少重复劳动. 那现如今, DDD(领域驱动设计)应该是比较受推崇的. 所以在这个项目里, 大家决定用DDD来设计系统与抽象业务. 我是十分懵逼的. 只能抓紧时间恶补了. &nbs
转载
2024-09-05 07:25:20
24阅读
1. 面向对象设计是 DDD 的核心DDD 着重于将业务领域中的概念和对象映射到对象中,使对象模型能够更好地反映业务的真实情况,从而使设计更具可理解性和可维护性。DDD 是一种领域驱动的设计方法,旨在通过建立对领域模型的清晰理解来解决业务问题。和事务脚本不同,DDD 使用面向对象设计来应对复杂的业务场景。简单来说,DDD 是由领域对象承载业务逻辑,所有的业务操作均在模型对象上完成,同一对象上不同的
转载
2023-10-24 13:30:43
433阅读
还在搞MVC?DDD才是yyds!DDD 这几年越来越火,资料也很多,大部分的资料都偏向于理论介绍,有给出的代码与传统 MVC 的三层架构差异较大,再加上大量的新概念很容易让初学者望而却步。本文从 MVC 架构角度来讲解如何演进到 DDD 架构。从 DDD 的角度看 MVC 架构的问题代码角度:瘦实体模型:只起到数据类的作用,业务逻辑散落到 service,可维护性越来越差面向数据库表编程,而非模
转载
2023-08-07 09:18:49
109阅读
回到目录上一讲介绍了DDD中的领域层,并提到下次要讲Unity,所以这篇文章当然就要介绍它了,呵呵,Unity是Microsoft.Pra
原创
2022-08-26 09:12:51
212阅读
文章目录背景说明官网Github构造diff测试测试修改测试新增集合比较封装CRUD自定义比较器使用注解类级别@Entity@ValueObject@Value@DiffIgnore@ShallowReference@IgnoreDeclaredProperties@TypeName属性@Id@DiffIgnore@DiffInclude@ShallowReference@PropertyNam
转载
2023-10-19 19:32:36
163阅读
DDD(domain driven design)领域驱动设计模型一、DP(domain primitive)1、什么是DP2.为什么要用DP2.1 API接口清晰度2.2 数据验证和错误处理2.3 业务代码的清晰度3.DP原则3.1 将隐性的概念显性化3.2 将隐性的上下文显性化3.3 封装多对象行为4. DP与DTO5.DP使用场景二、DDD架构推演传统三层架构(UI、业务层、基础设施层)1
转载
2023-07-21 22:24:17
218阅读
Talking is easy, show me your code真正开始 DDD 旅程前,我想让您看到经过 DDD 设计之后的代码长啥样。我想,这是所有本着“talking is easy, show me your code”理念的程序员都比较在乎的观念。为此,我特别将“群买菜”生鲜电商系统服务端代码新旧代码结构都显示出来,让您看看原来的旧代码——也就是“事务脚本式”代码长啥样(应该是目前大
转载
2023-08-16 16:55:32
127阅读
java常用框架总结Java杂谈ORM这是最后一篇Java杂谈了,以ORM框架的谈论收尾,也算是把J2ee的最后一方面给涵盖到了,之所以这么晚才总结出ORM这方面,一是笔者这两周比较忙,另一方面也想善始善终,仔细的先自己好好研究一下ORM框架技术,不想草率的敷衍了事。其实J2ee的规范指南里面就已经包括了一些对象持久化技术,例如JDO(Java Data Object)就是Java对象持久化的新规
转载
2023-11-30 16:18:28
52阅读
SOA与微服务架构参考:SOA架构和微服务架构的区别微服务架构 vs. SOA架构SOA 服务架构之简介及理解 领域驱动架构微服务系统的设计自然离不开DDD(Domain-Driven Design,领域驱动设计),它由Eric Evans提出,是一种全新的系统设计和建模方法。DDD事实上是针对面向对象分析和设计的一个扩展和延伸,对技术架构进行了分层规划,同时对每个类进行了策略和类型的划分。领域模
转载
2023-09-12 16:44:26
80阅读
BigDecimal Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数,但在实际应用中,可能需要对更大或者更小的数进行运算和处理。一般情况下,对于那些不需要准确计算精度的数字,我们可以直接使用Float和Double处理,但是Double.valueOf(String) 和Float.va
转载
2024-04-28 18:46:33
69阅读
一.获取UUIDUUID uuid = UUID.randomUUID();
String str = uuid.toString();
// 去掉“-”
String s = str.replaceAll("-", "");二.获取固定格式的时间字符串第一种
//获取当前时间对象
Date d = new Date();
//创建日期格式化类对象,”yyyy/MM/dd HH:mm:ss”是我
转载
2023-08-02 00:45:51
258阅读
软件开发前期,通常需要进行大量的业务知识梳理,进而完成软件设计,然后是开发。这些软件开发周期中,系统分析和设计是分开的,导致需求和成品非常容易出现偏差,两者相对独立,还会导致沟通困难,而DDD开发模式则打破了这种隔阂,在业务知识梳理的过程中,形成某个领域知识,根据领域知识来一步步驱动软件设计。01 DDD开发模式 VS MVC开发模式在介绍DDD开发模式之前,我们先来介绍一下常用的MVC开发模式的
转载
2024-08-17 13:06:44
94阅读
Java中的Drag and Drop详解与代码示例
我最近对对Java中的Drag and Drop做了一个总结, 觉得大致可以通过两种方法实现Drag and Drop:
1.比较初级的D&D:只利用java.awt.datatransfer.*中的类实现.
2.高级D&D: 利用javax.awt.dnd.*中的类实现.
比较初级D&D:只利用java.awt
转载
2023-10-14 19:03:14
76阅读
接上篇《DDD 实战 (10):冲刺 1 战术之服务设计(下)及技术决策》后,我们接下来的重点,就是要展示真正的代码实现了。在本篇中,我将围绕 TDD(Test-driven development, 测试驱动开发)编程方法为核心,演示前面完成的相关 DDD 设计是如何落地的。在本篇中,我将首先介绍 TDD 三重奏(写测试-写功能-重构)和相关原则,然后用实际代码演示 TDD 的工作流程,最后我会
转载
2024-05-08 17:53:54
217阅读
转载1.一个微服务+DDD(领域驱动设计)的代码结构示例
原创
2022-06-27 11:25:49
209阅读
引言领域驱动设计(Domain Driven Design,DDD)这个概念最近几年非常火,笔者在最近一段时间对相关内容进行阅读,总体下来感觉这个概念有点大,动不动就要高屋建瓴,大刀阔斧的进行战略设计。同时相关的代码实现大部分是java实现的,无法参考其落地实现。一、微服务设计为什么需要DDD在单机和集中式架构这两种模式下,软件无法快速响应需求和业务的迅速变化,最终错失发展良机。分布式微服务的出现
作者:张晓龙引言在讨论DDD分层架构的模式之前,我们先一起回顾一下DDD和分层架构的相关知识。DDDDDD(Domain DrivenDesign,领域驱动设计)作为一种软件开发方法,它可以帮助我们设计高质量的软件模型。在正确实现的情况下,我们通过DDD完成的设计恰恰就是软件的工作方式。UL(Ubiquitous Language,通用语言)是团队共享的语言,是DDD中最具威力的特性之一。不管你在
转载
2024-07-24 15:45:47
98阅读
【DDD】领域驱动设计实践 —— 框架实现目录【DDD】领域驱动设计实践 —— 框架实现1. 框架实现图2. 框架详述User Interface层dtocontrollerapplication层serviceassemblerdomain层domain entitydomain value objectdomain factorydomain servicedomain eventreposi
转载
2024-06-18 09:16:53
65阅读