领域驱动设计DDD之资源库
为什么使用资源库? 如果完全按照领域模型的角度,完全通过遍历对象的方法来获取所有关联的对象。这种模型会过于错综复杂。对象嵌套的层级或者关联的层级非常深。例如通过Customer.order.product.price层层遍历来获取当时客户订...
为什么使用资源库? 如果完全按照领域模型的角度,完全通过遍历对象的方法来获取所有关联的对象。这种模型会过于错综复杂。对象嵌套的层级或者关联的层级非常深。例如通过Customer.order.product.price层层遍历来获取当时客户订...
为什么需要工厂 1、 当创建一个复杂对象或聚合的过程很复杂并且暴露出了过多的内部结构时,我们则可以使用工厂进行封装。一个对象在它的生命周期中要承担大量的职责,如果再让复杂对象负责自身的创建,那么职责过载将会导致问题。 2、 我们设计好领域模...
获取 IDEA 激活码、PyCharm 激活码、WebStorm 激活码和 DataGrip 激活码,提供详细破解教程与永久激活方法。支持 IDEA 永久激活与破解,免费获取注册码与激活码,解决 2024/2025 版本激活问题,轻松实现所有 JetBrains 工具的激活。
为什么需要聚合? 当我们设计一个订单模块,用户下单时,我们需要确保用户的余额可供支付这笔订单,并且保存这个订单。通俗的理解就是当下单的时候,必须生成订单表记录,并且检查用户余额是否足够支付,并修改用户的余额表。再转换到我们领域驱动设计中,我...
什么是领域服务? 在战术建模当中,并非所有模型都是事物。有些模型是对领域中的一些行为操作进行建模。此类模型我们称之为领域服务。当一些重要的领域操作无法放到实体、值对象或者聚合时,他们本质是行为而不是事物。如果我们不寻找一些对象来封装这些领域...
值对象是什么? 之前我们讲到实体,它最主要的特征在于概念上的标识。而领域中存在一些不需要进行标识的对象,它们主要是对事物的描述。如何理解这段话呢?可以通俗的理解,之前我们认为实体是数据库中的一条记录,这条记录会发生更改,例如学生的信息表。而...
原文地址:《Java NIO vs. IO》 当学习Java NIO和IO的API用法时,一个问题就从脑海里冒出:什么时候我们该用IO,什么时候我们该用NIO呢?在这篇文章中我会阐明Java NIO和IO之间的不同点和使用场景以及它们是如何...
看到一篇关于Java内存模型清晰的技术文章于是翻译一下供大家学习交流。 原文地址:《Java Memory Model》 java内存模型指定了java虚拟机如何与计算机的内存(RAM)进行工作。java虚拟机是一整个计算机的抽象模型,所以...
题目 给定两个大小为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。 请你找出这两个正序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。 你可以假设 nums1 和 nums2 不会同时为空。 示例 ...
本文总结了常见高频的关于排序的算法考察。 1.冒泡排序 冒泡排序的思想是元素两两比较,将较大或者较小的元素往一端进行移动 public static void bubble(int[] array) { for (int i = 0; i ...
本文总结了常见高频的关于链表的算法考察。 1.如何找到链表的中间元素? 我们可以采用快慢指针的思想,使用步长为1的慢指针和步长为2的快指针,当快指针抵达链表末尾时,此时慢指针指向的即为中点位置。 public static LinkNode...