阿里云「飞天发布时刻」2024来啦!新产品、新特性、新能力、新方案,等你来探~ 了解详情
写点什么

文章:领域模型管理与 AOP

  • 2008-02-28
  • 本文字数:688 字

    阅读完需:约 2 分钟

如今,很多项目都关注于领域驱动设计,但事情并非总是那么容易。其中最重要的事情就是从只因技术原因而存在的代码中将领域代码分离出来。

Mats Helander 在 InfoQ 写了一篇文章,是关于如何用他称为领域模型管理的概念来设法处理领域模型。在文章中,Mats 引领读者一步步解决了在实现一个领域模型时涉及设计和关注点分离的普遍问题,解释了解决问题的方法,并传授了在这个过程中出现的面向方向编程、一对设计模式、以及关于对象 / 关系映射的一些知识。

在下面的文章摘录中,Mats 谈论了把基础架构代码放在哪里的问题:

随着基础架构代码的增长,找到一个处理它的优良架构变得越来越重要。问题主要在于——我们是否允许把一些基础架构代码放在我们的领域模型类里面,还是无论如何应该避免这样做?

避免基础架构代码进入领域模型类的论点是强有力的:领域模型应该表示应用程序所处理的核心业务概念。对于想大量使用其领域模型的应用来说,保持这些类干净、轻量级、易于维护是一个极好的架构目标。

另一方面,我们接下来将会看到,保持领域模型类完全不含基础架构代码——通常被称为使用 POJO/POCO(Plain Old Java/CLR Objects)领域模型,这种极端的路线也被证明是有问题的。最终往往导致采用笨重的、低效率的变通方法来解决问题——而且有些功能用这种方式根本不可能实现。

也就是说,我们遇到的还是一个权衡利弊的情况,我们应该尽量在领域模型类里面只放必不可少的基础架构代码,决不超出这个限度。我们付出领域模型的轻微发胖,换来效率的提高以及使一些必要领域模型管理功能有可能实现。毕竟,软件架构很大程度上是关于如何做一笔好买卖。

阅读全文:领域模型方面的管理 获取源代码

2008-02-28 02:401154
用户头像

发布了 151 篇内容, 共 60.1 次阅读, 收获喜欢 18 次。

关注

评论

发布
暂无评论
发现更多内容

对某个通用字段进行加解密或者是脱敏处理

想要飞的猪

数据脱敏 字段加密

一文读懂Partisia Blockchain,被严重低估的隐私区块链生态

长安区块链

Amazon Q:对话智能赋能企业发展

亚马逊云科技 (Amazon Web Services)

#人工智能

事业-最佳实践-编码-命名规范

南山

最佳实践 代码质量 命名规范 类命名 方法命名

大公司的Java面试题集

程序员李木子

Java Java 面试题

高性能网络SIG月度动态:virtio 动态中断调节优化、多项内核网络缺陷修复

OpenAnolis小助手

操作系统 高性能网络 龙蜥社区SIG

事业-最佳实践-编码-类大小衡量方式

南山

最佳实践 代码质量 单一职责 类大小 编码最佳实践

事业-最佳实践-编码-日志输出规范

南山

最佳实践 日志 代码质量 日志规范 编码基础

鸿蒙原生应用三方库《日历转换器》

坚果

HarmonyOS 坚果派 HarmonyOS框架

放心使用!龙蜥全系产品均不受 XZ 后门影响

OpenAnolis小助手

操作系统 漏洞 龙蜥社区 龙蜥操作系统

构建多功能DApp项目:质押、私募、DeFi、分红等功能详解

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

探索社交App商机:视频直播App、语聊陪玩、1v1约会App必不可少

山东布谷科技胡月

短视频直播系统 1v1交友app开发 语聊平台 海外社交APP 短剧app开发

鸿蒙原生应用《隐私协议静态共享库》

坚果

HarmonyOS HarmonyOS框架

2024-04-13:用go语言,给定一个整数数组 `nums`, 请编写一个函数,返回一个新的数组 `counts`。 满足以下条件:对于每个 `nums[i]`, `counts[i]` 表示在

福大大架构师每日一题

福大大架构师每日一题

@开发者,龙蜥社区邀您参加 2024 OceanBase 开发者大会

OpenAnolis小助手

开源 操作系统 OceanBase 开源 开发者大会

最新软件测试技术-2024

Geek_e575df

手把手带你申请Sora内测资格,附申请提示词

蓉蓉

openai ChatGPT4 sora

浪潮信息-龙蜥技术认证上线!实战培训 10 个名额,限量报名

OpenAnolis小助手

开源 操作系统 龙蜥社区

个人介绍-第一篇博文

Geek_e575df

事业-最佳实践-编码-单元测试-提升代码可测试性

南山

最佳实践 测试 单元测试 代码质量 可测试性

《自动机理论、语言和计算导论》阅读笔记:p139-p171

codists

编译原理

Cloud Kernel SIG 月度动态:ANCK 全面首次支持龙芯架构、海光四号处理器,以及适配兆芯等最新进展

OpenAnolis小助手

操作系统 内核 龙蜥社区 龙蜥sig

构建区块链质押挖矿系统:DApp质押挖矿系统开发需求详解

区块链软件开发推广运营

dapp开发 区块链开发 NFT开发 公链开发

鸿蒙HarmonyOS实战-ArkTS语言(状态管理)

蜀道山

鸿蒙 HarmonyOS 鸿蒙系统 ArkTS

Anolis OS 23.1 Alpha2 预览版:内核配置升级与软件选型新进展

OpenAnolis小助手

开源 操作系统 龙蜥操作系统

Spring高手之路17——动态代理的艺术与实践

砖业洋__

spring aop JDK动态代理 CGLIB动态代理

支付系统概述(六):收银台

agnostic

支付系统设计与实现

一座计算“立交桥”,让新质生产力从湘江水畔到中国大地

脑极体

算力

鸿蒙HarmonyOS实战-ArkTS语言(基本语法)

蜀道山

typescript 鸿蒙 HarmonyOS 鸿蒙系统 ArkTS

一款基于AB32VG1的桌面智能坞小工具

智趣匠

程序设计 开发板 12864 OLED液晶显示屏

查看自动类型推导结果的方法

爱分享

编辑器 代码规范 C++11 C++ modern C++

文章:领域模型管理与AOP_架构_Mats Helander_InfoQ精选文章