搭建手机网站注册城乡规划师考试大纲

news/2025/9/23 17:49:56/文章来源:
搭建手机网站,注册城乡规划师考试大纲,零基础怎么做网站,新媒体营销岗位有哪些埃里克埃文斯#xff08;Eric Evans#xff09;已制定了什么是域驱动设计#xff08;DDD#xff09;。 Martin Fowler是DDD的大力支持者和拥护者。 这些都是非凡的名字#xff0c;几乎可以肯定的是#xff0c;他们正在支持一些有价值的东西。 我不是在这里对此争论。 也许… 埃里克·埃文斯Eric Evans已制定了什么是域驱动设计DDD。 Martin Fowler是DDD的大力支持者和拥护者。 这些都是非凡的名字几乎可以肯定的是他们正在支持一些有价值的东西。 我不是在这里对此争论。 也许我正在试图证明我编写软件的方式的合理性或者也许我只是试图清除事物并具有建设性。 让我们来看看。 什么是领域驱动设计的核心- 域 域模型 通用语言的抽象的概念。 我不会对此进行详细介绍–对于那些感兴趣的人有维基百科在页脚中有很多参考文献可供阅读。 从理论上讲这一切都是非常好的并且域驱动的构建软件的方式应该对所有人都具有吸引力–毕竟构建该软件是为了该领域的利益而不是建筑师开发人员或QA的利益。 但是现在谈到了实际部分–如何实施DDD 我将在当代的背景下回答这个问题即使用spring和hibernate之类的框架。 我会证明它们的用法合理。 Spring是一个非侵入性的依赖注入框架。 Fowler也强烈支持DI并且DI被认为是实现DDD的好方法。 休眠是使用关系数据库时使用对象的一种方法。 另一种方法是使用JDBC并手动构造对象但这很繁琐。 因此休眠不会影响体系结构部分-它是一种实用程序当然功能非常强大。 在本文中我将使用“休眠”和“弹簧”作为“给定的”尽管它们可以通过任何DI框架以及任何依赖对象的ORM或其他持久性机制进行更改。 使用spring和hibernate实现DDD的公认方法是 使用Configurable使域对象适合进行依赖项注入它们不会在spring之前实例化因此它们需要这种特殊方法 在域对象中注入存储库对象以允许域对象执行与持久性相关的操作 使用薄的无状态的事务服务层外观来协调域对象 这篇广泛的文章显示了这种方法的实现和描述。 另一个示例没有Spring是http://dddsample.sourceforge.net/ 。 稍后再讨论。 这种方法的替代方法是贫血域模型 。 它被认为是一种反模式但同时非常普遍并且经常使用。 贫血数据模型的功能很简单–域对象内部没有业务逻辑–它们只是数据持有者。 而是将业务逻辑放在服务中。 之所以将其视为反模式是因为首先这似乎是一种程序方法。 它破坏了封装因为对象的内部状态完全不是内部状态。 其次由于领域对象是设计的中心因此如果它的操作不属于它而改为多个无状态服务类则很难更改它。 域驱动的设计针对中型到大型应用程序这些应用程序发生了很大变化并且需要一种简便的方法来快速进行更改而又不会破坏其他功能。 因此在对象本身内具有对象的所有功能非常重要。 这也可以确保减少重复代码。 因此代替让服务来计算价格 ProductServiceImpl.calculatePricecomplexProduct我们应该简单地拥有ComplexProduct.calculatePrice 。 因此每当领域专家说价格计算机制发生变化时更改它的地方就是一种也是最直接的一种。 如果考虑简单的操作这看起来很容易。 但是当一个域对象需要另一个域对象来完成其工作时它将变得更加复杂。 使用贫血数据模型只需将另一个Service注入当前Service并调用其方法即可实现。 使用建议的DDD可以通过将域对象作为参数来实现。 在我看来域对象它也是休眠实体已经设置了其依赖项。 但不是在Spring之前因为Spring无法确切知道要注入哪个领域对象。 它们由休眠“注入”因为它确切知道应将哪个由主键标识域对象放置在另一个域对象中。 因此有一个奇怪的例子–如果产品腐烂并且必须在仓库中分配气味则必须调用例如Warehouse.increaseSmellLevelgetSmellCoeficient 。 并且它有精确的仓库不受弹簧的干扰。 现在我不同意这一点。 大多数来源包括上面链接的两个来源都指出应该将存储库/ DAO注入域对象中。 不他们不应该。 只需调用“保存”或“更新”就不需要了解对象的内部状态。 Hibernate仍然知道一切。 因此我们只是将整个对象传递到存储库。 让我们将其分为两个部分- 业务逻辑和基础架构逻辑 。 域对象应该对基础结构一无所知。 那可能意味着它不应该知道它被保存在某个地方。 产品是否关心其存储方式 不这是“感兴趣”的存储机制。 这是实际的缺点 通过简单地将存储库调用包装在所有域对象中来实现CRUD –代码重复 域对象可传递地依赖于持久性–即它不是纯域对象并且如果存储库发生更改则也必须对其进行更改。 从理论上讲仅当域规则和属性更改时才应更改 人们很容易将事务缓存和其他逻辑包含在域对象中 在上面的一篇文章中我将在此处打开有关建议的解决方案的括号以使代码重复和样板代码更易于处理。 建议生成代码。 而且我认为代码生成是一种罪过。 它将无法删除重复的或非常相似的代码并将其抽象化为工具。 最引人注目的示例是生成ProductDAOCategoryDAOWarehouseDAO等。生成的代码难以管理无法扩展且严重依赖于外部元数据这绝对不是面向对象的方法。 说到存储库在建议的示例中每个域对象都应该有一个存储库该存储库又将调用持久性机制。 那我们得到什么 用户在UI中按“保存”保存在服务上的UI调用以便获得事务支持保存在域对象上的服务调用保存在资源库上的域对象调用保存在持久性机制上的资源库调用持久性机制保存对象。 是我自己还是在这里调用域对象是多余的。 这是一种不增加任何内容的直通方法。 而且由于很多功能与CRUD有关是的即使在大型企业应用程序中也是如此这对我来说似乎很糟糕。 最后我发现Configurable方法是一个hack。 它在后台做了一些魔术这不是任何通用语言功能也不是设计模式并且为了了解它是如何发生的您需要大量的经验。 所以总结上面的大混乱 域对象不应由SpringIoC进行管理它们不应具有DAO或与基础结构有关的任何内容 域对象具有由休眠或持久性机制设置的它们依赖的域对象 域对象执行业务逻辑就像DDD的核心思想一样但这不包括数据库查询或CRUD –仅对对象内部状态进行的操作 几乎不需要DTO-在大多数情况下域对象本身就是DTO这节省了一些样板代码 服务执行CRUD操作发送电子邮件协调域对象基于多个域对象生成报告执行查询等。 服务应用程序层并不薄但不包括域对象固有的业务规则 应避免生成代码。 应该使用抽象设计模式和DI来克服代码生成的需求并最终–摆脱代码重复。 参考有关 领域驱动设计贫乏领域模型代码生成依赖项注入等的信息 请参见Bozho技术博客上的JCG合作伙伴 Bozho。 相关文章 Spring和AspectJ的领域驱动设计 在域驱动设计中使用状态模式 ORM问题 什么是依赖倒置 是IoC吗 框架使开发人员愚蠢吗 每个程序员都应该知道的事情 JDK中的设计模式 Java最佳实践 翻译自: https://www.javacodegeeks.com/2011/09/on-domain-driven-design-anemic-domain.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/913369.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2小时wordpress建站租整套房做民宿的网站

Java中所有类的对象都可以直接使用Object类中提供的一些方法 1. toString():返回对象的字符串表示形式,通常在类中重写,以便于返回的是对象的内容 2. equals():判断两个对象的地址是否相等,直接使用也一样,…

做cpa用什么类型的网站好国内新闻最近新闻今天

[1.GIS的概念 1.1什么是gis 地理信息系统 (GIS, Geographic Information System) 是一种基于计算机的工具,它可以对在地球上存在的东西和发生的事件进行成图和分析。 GI上次提到了EclipseTomcatLomboz Java Web开发环境的配置,可环…

长沙市建设工程质量安全监督站官方网站网站做前端

大神链接:作者有幸结识技术大神孙哥为好友,获益匪浅。现在把孙哥视频分享给大家。 孙哥链接:孙哥个人主页 作者简介:一个颜值99分,只比孙哥差一点的程序员 本专栏简介:话不多说,让我们一起干翻JVM 本文章简介:话不多说,让我们讲清楚JVM当中的操作数在栈以及分析操作数…

胶州市网站建设seo 哪些媒体网站可以发新闻

目录 dijkstra算法求最短距离步骤 朴素的dijkstra算法---acwing-849 代码如下 代码思路 堆优化版的dijkstra算法---acwing-850 代码如下 关于最短路问题分有好几种类型 : 单源就是指:只求从一个顶点到其他各顶点 多源是指:要求每个顶…

实用指南:详解RabbitMQ高级特性之延迟插件的安装和使用

实用指南:详解RabbitMQ高级特性之延迟插件的安装和使用2025-09-23 17:44 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; …

Django 视图层

目录视图函数HttpRequest对象常用属性:常用方法:HttpResponse对象 参考文档:https://zhuanlan.zhihu.com/p/151368045 视图函数 视图函数,简称视图,属于Django的视图层,默认定义在views.py文件中,是用来处理web请…

科技 公司 响应式 网站知名广州网站建设

前言 阅读本文需要阅读一些前置知识 [信号与系统]傅里叶变换、卷积定理、和为什么时域的卷积等于频域相乘。 [信号与系统]有关滤波器的一些知识背景 [信号与系统]关于LTI系统的转换方程、拉普拉斯变换和z变换 [信号与系统]关于双线性变换 IIR滤波器的数学表达式 IIR&…

第二部分:VTK核心类详解(第38章 vtkPointData点数据类) - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Kettle: pentaho-server-9.4登录问题

测试环境:Pentaho-server-ce-9.4.0.0 + mysql8.0.35+ openJDK11测试环境:Pentaho-server-ce-9.4.0.0 + mysql8.0.35+ openJDK11 点击登陆时(admin / password) .界面提示: 发生登录错误。请重试。 部分日志信息如…

企业内部信息网站如何建设广告设计培训学校

设置pdo属性 $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, true);

网站开发市场分析丹东网站建设

效果 1、适合搜素表单布局,查询重置等功能块始终位于最后一行的最后一列 2、适合普通多行两端对齐,未填充满的行左对齐 思路 此脚本目的为实现整齐风格的表单布局,为了达到整齐的效果,每个表单元素或者块都要设置一致的 宽度…

网站商城的建设今天中美关系最新消息

高校教务系统密码加密逻辑及JS逆向 本文将介绍皖西学院教务系统的密码加密逻辑以及使用JavaScript进行逆向分析的过程。通过本文,你将了解到密码加密的基本概念、常用加密算法以及如何通过逆向分析来破解密码。 本文仅供交流学习,勿用于非法用途。 一、密…

网站推广问题学做西餐网站

在Vue.js框架中,数据监听是一个核心功能,它允许开发者创建响应式的应用程序。这一功能的实现主要依赖于Vue的响应式系统,其中最关键的部分是如何监控数据变化并响应这些变化。以下是一个对Vue中数据监听实现方式的简要概述,适用于…

城市建设投资公司 网站开发者选项怎么打开

学习目标: 解释Linux网络配置的重要性和作用引入常见的面试问题 学习内容: 如何查看当前系统的IP地址和网关信息? 解答:可以使用ifconfig命令来查看当前系统的IP地址和网关信息。通过运行ifconfig命令,将会列出所有可…

Win11/Win10/Office 永久激活

1、使用快捷键Windows键+R键打开运行框,输入powershell,点确定运行,弹出powershell命名行输入窗口,输入以下命令进行激活: irm https://get.activated.win | iex同时也可以输入备用命令进行激活: irm win.zyqq.to…

提供微网站制作网络公司推广公司网站有哪些方式

很相似的两个概念,一不小心就会混淆 首先,对两个名词做一个大概的解释: 下标越界 在引用数组元素时,使用的下标超过了该数组下标的应有范围,但应注意的是: C/C不对数组做边界检查。 可以重写数组的每一…

springboot~获取原注解的方法findMergedAnnotation使用场景

这是一个很好的问题,涉及到Spring注解的元注解处理和属性别名机制。让我详细解释一下Spring JMS是如何获取到你自定义注解中的destination值的。 核心机制:Spring的注解属性别名(Attribute Aliasing) 当你在自定义注…

自己有个服务器 怎样做网站深圳东莞网站开发

一.问题描述 假如我们有一个数组,数组中的元素有正数和负数,如何在数组中找到一段连续的子数组,使得子数组各个元素之和最大。 二.问题分析 分治法求解: 初始状态: low0;highA.length-1;mid&am…

贵阳网站建设哪家公司好山东做网站公司

目录 一. 🦁 前言二. 🦁 像小说一样趣读 Linux 源码三. 🦁 学习路线 一. 🦁 前言 最近、道然科技给狮子送了两本书:一本是付东来的《labuladong的算法笔记》、一本是闪客著的《Linux源码趣读》,《labulado…

手机网页及网站设计网站设计大概多少钱

添加法国,它位于右下方,因此我们应该看到一点…plot(FR,addTRUE)然后,我们可以检索英国退欧公投数据referendumddply(referendum,.(Region,HASC_code),summarise,Remainsum(Remain),Leavesum(Leave))我们可以发现,脱欧赢得了51.89…