Tier 各层中的实体

实用派还是学术派,在代码设计中经常各层实体关系有字段重叠和业务重叠,这并不冲突,我们需要根据自己项目的特色来决定,好的设计模式需要和具体的业务模式结合才能发挥1+1 >= 2的效果

Entity (DAL Tier)

DAL层和数据持久化打交道,所有的实体对象在库表中表示都是一条条数据;表达的是DAL 中db数据和实体的映射关系;

DAL层针对entity 会实现对应的 Data Repository,‘数据仓库’主要从代码层面提供和db 交互的方法类,例如:新增、删除、修改、查找等;

Model (Domain Tier)

a hypothetical description of a complex entity or process

BL中的model代表的是业务模型,业务抽象实体;它用来描述bl层的业务逻辑,不用来做数据访问db方面的处理使用

Data model (DTO Presentation tier)

DTO 用来处理展示层的数据,他只关心需要展示什么内容,不关心其他tier的数据模式;展示层的dto也用来做 form(前端表单)的validate(校验);

Domain entity中的数据可能在某些场景中是要保持Domain tier remain private,敏感的,不应该透传到Presentation中

分层示例:

【DDD设计】 Domain model VS DAL Entity VS Presentation DTO相关推荐

  1. 拨乱反正:DDD 回归具体的业务场景,Domain Model 再再重新设计

    首先,把最真挚的情感送与梅西,加油! 写在前面 阅读目录: 重申业务场景 Domain Model 设计 后记 上一篇<设计窘境:来自 Repository 的一丝线索,Domain Model ...

  2. 阿里技术专家详解 DDD 系列- Domain Primitive

    导读:对于一个架构师来说,在软件开发中如何降低系统复杂度是一个永恒的挑战,无论是 94 年 GoF 的 Design Patterns , 99 年的 Martin Fowler 的 Refactor ...

  3. yang模型中rpc_领域驱动模型(DDD)设计讲解

    一. 什么是领域驱动模型(DDD)? 领域驱动模型一种设计思想,我们又称为DDD设计思想.是一种为了解决传统设计思想带来的维护困难,沟通困难和交互困难而产生的一种新的思想.也解决了在部分公司中,一个项 ...

  4. 系统架构设计——DDD设计框架基本学习

    摘要 最近DDD设计很火,但是刚刚入门还是很懵,通过的学习DDD项目设计的结构目录来实现对DDD设计理解同时也是为大家在公司能够看懂公司的DDD项目结构目录做一个参考和学习.同时后期本人将推出更多的对 ...

  5. 【论文阅读】Domain Adaptation for Deep Entity Resolution

    Domain Adaptation for Deep Entity Resolution 摘要 实体解析(ER)是数据集成的一个核心问题.ER的最先进(SOTA)结果是通过基于深度学习(DL)的方法实 ...

  6. 对SSM框架中Dao层,Mapper层,controller层,service层,model层,entity层等层的理解

    SSM 是 Spring + SpringMVC + Mybatis集成的框架. MVC即model view controller.(模型,视图,控制器) 一.entity层(model层,doma ...

  7. 如何一步一步用DDD设计一个电商网站(十三)—— 领域事件扩展

    本系列所有文章 如何一步一步用DDD设计一个电商网站(一)-- 先理解核心概念 如何一步一步用DDD设计一个电商网站(二)-- 项目架构 如何一步一步用DDD设计一个电商网站(三)-- 初涉核心域 如 ...

  8. 贫血的Domain Model之说

    例子1.银行帐号Account: 一个经常引起争论的问题就是,deposit/draw方法到底应该建模到 Account中还是建模到AccountManager(对一个银行出纳员的建模)中. 我觉的将 ...

  9. 如何一步一步用DDD设计一个电商网站(七)—— 实现售价上下文

    本系列所有文章 如何一步一步用DDD设计一个电商网站(一)-- 先理解核心概念 如何一步一步用DDD设计一个电商网站(二)-- 项目架构 如何一步一步用DDD设计一个电商网站(三)-- 初涉核心域 如 ...

最新文章

  1. 设计模式学习笔记清单
  2. 安卓之父的手机创业项目卖了!这个华人接手,谷歌风投还投了钱
  3. exchange揭开拨号音还原法的神秘面纱
  4. 乱码 转ios_王者荣耀:转区数量提升25倍,教你解决检测异常,IOS也有艾琳了
  5. 下载丨Oracle 12c最佳参数实践
  6. B - ACM小组的古怪象棋 【地图型BFS+特殊方向】
  7. 隐藏ribbon按钮
  8. 让Cookies操作变得向Session一样简单
  9. 【脚本开发】:性能测试-Java虚拟用户实现下载脚本
  10. eclipse引入jar类包的源代码
  11. (转)ASP.NET MVC 3.0:基于Ajax的表单提交,A页面认证失败后页面被强转至登录页面,待登录成功将如何回到A页面?...
  12. python ai 源码_2018年撩课学院-Python+人工智能/JavaEE/Web全栈/全学科下载_Python教程...
  13. 手把手带你玩转Spark机器学习-Spark的安装及使用
  14. 2018年苏大计算机考研872真题及解析
  15. 微信java精简版低内存_微信精简版apk下载-微信精简版低内存2016 安卓版_5577安卓网...
  16. 什么是二极管钳位电路
  17. LeetCode 0699.掉落的方块
  18. ACM-ICPC近年省赛汇总
  19. 到店维修要注意以下三点
  20. (python)小最的电脑上安装了一个机器翻译软件,他经常用这个软件来翻译英语文章这个翻译软件的原理很简单,它只是从头到尾,依次将每个英文单词用对应的中文含义来替换。对于每个英文单词,软件会先在内存中

热门文章

  1. 百度统计API的使用
  2. 什么是 DDoS?完整指南
  3. PTA(每日一题)7-66 分解素因子
  4. spark入门案例以及sbt安装与打包(Linux环境)
  5. 哈工大李治军老师操作系统笔记【27】:从生磁盘到文件(Learning OS Concepts By Coding Them !)
  6. [XXII Open Cup, Grand Prix of Korea M]Yet Another Range Query Problem
  7. ECSHOP商城后台无法登陆
  8. 通过宝塔面板,定时清除Docker日志空间
  9. 解决attempted to register plugin but it was already registered with this flutterengine
  10. 已解决解决:consumer: Cannot connect to redis://localhost:6379//: Error 11001 connecting to localhost:6379