DDD说实体的功能应该是该实体的一部分,这导致具有许多功能的类在不同的上下文中使用,打破单一责任规则。例如,如果我是一个实体:一个“Person”,我想要纳税,那么"Person"会获得payTaxes功能,现在,如果我想和儿子一起玩,那么"Person"会得到playWithSon函数,Person类将具有许多在上下文方面彼此无关的函数。
DCI代表数据,上下文,交互,这个想法是应用程序可以在数据(软件是什么)和功能(软件做什么)之间分开,DCI表示该模型应该是贫血的,但您可以将角色应用到您的模型,从而为你的模型(可切换)这个角色具有的功能。如果一个Person类只有基本属性,将TaxPayerRole这个角色作为构造函数的入参来接受,并为在某些上下文使用场景中提供TaxPayerRole的功能(用例);也可以将DadRole作为入参接受。
网友回复
为啥所有的照片分辨率提升工具都会修改照片上的图案细节?
js如何在浏览器中将webm视频的声音分离为单独音频?
微信小程序如何播放第三方域名url的mp4视频?
ai多模态大模型能实时识别视频中的手语为文字吗?
如何远程调试别人的chrome浏览器获取调试信息?
为啥js打开新网页window.open设置窗口宽高无效?
浏览器中js的navigator.mediaDevices.getDisplayMedia屏幕录像无法录制SpeechSynthesisUtterance产生的说话声音?
js中mediaRecorder如何录制window.speechSynthesis声音音频并下载?
python如何直接获取抖音短视频的音频文件url?
js在浏览器中如何使用MediaStream与MediaRecorder实现声音音频多轨道混流?