惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Know Your Adversary
Know Your Adversary
云风的 BLOG
云风的 BLOG
Recent Announcements
Recent Announcements
F
Fortinet All Blogs
B
Blog
罗磊的独立博客
宝玉的分享
宝玉的分享
Vercel News
Vercel News
Martin Fowler
Martin Fowler
N
Netflix TechBlog - Medium
P
Proofpoint News Feed
T
Threatpost
Security Latest
Security Latest
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Stack Overflow Blog
Stack Overflow Blog
I
Intezer
P
Privacy International News Feed
D
Docker
月光博客
月光博客
博客园 - 三生石上(FineUI控件)
M
MIT News - Artificial intelligence
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
L
Lohrmann on Cybersecurity
Google DeepMind News
Google DeepMind News
The Last Watchdog
The Last Watchdog
A
Arctic Wolf
IT之家
IT之家
S
SegmentFault 最新的问题
S
Securelist
博客园 - 叶小钗
N
News and Events Feed by Topic
F
Full Disclosure
Security Archives - TechRepublic
Security Archives - TechRepublic
Engineering at Meta
Engineering at Meta
Hacker News: Ask HN
Hacker News: Ask HN
博客园 - Franky
GbyAI
GbyAI
AI
AI
Y
Y Combinator Blog
WordPress大学
WordPress大学
Latest news
Latest news
Microsoft Security Blog
Microsoft Security Blog
人人都是产品经理
人人都是产品经理
N
News | PayPal Newsroom
The Cloudflare Blog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
I
InfoQ

博客园 - 文野

DDD自问自答 数据结构(C#语言版)——栈和队列 数据结构(C#语言版)——线性表 2011一月的三个故事 我想要的2011 我的2011的三个故事 《悟透JavaScript》中的知识点 用Windows Live Writer写博客 我们是不是把MVC、ORM等技术的主次颠倒了? 论单一职责 由做梦想到的 2009第一帖,测试用Word2007发布博客 一点一点学ASP.NET之基础概念——事件 应用框架的设计与实现学习手札系列(持续更新) 未解决的问题(持续更新) 应用框架的设计与实现学习手札之类工厂服务——反射 一点一点学ASP.NET之基础概念——委托 一点一点学ASP.NET之示例——HttpModule 示例 一点一点学ASP.NET系列(持续更新)
对象结构
文野 · 2010-04-23 · via 博客园 - 文野

根对象:领域模型中的聚合根。代表了领域模型中一个完整的领域概念,如订单。

子对象:从属于另一个对象(父对象),是父对象的一部分。子对象的生命周期小于等于父对象的生命周期,如订单项。

友元对象(独创概念):被另一个对象引用的对象称之为友元对象。两个对象之间不存在父子关系,如订单项引用商品,订单引用客户。原则上,友元对象不应受引用友元对象的对象的约束。但根据业务规则,友元对象向外提供规则接口,其它对象可在规则接口基础上挂接业务规则,以影响友元对象的增删查改。 引用友元对象的对象保持友元对象的一个主键甚至更多信息。保持友元对象的部分信息是为了使在友元对象在被修改或删除时,保持对象在引用时的完整性,如商品价格,订单项记录的商品价格是在引用商品时的当时价格,即使商品已经删除,订单项也仍然知道当时选择的是什么商品。

友元对象代理: 通过引用友元对象的对象中保持的友元对象的信息,创建一个友元对象的代理对象,友元对象代理解决了友元对象延时获取的问题,只有在调用到友元对象的业务方法或其他信息时,才获取友元对象,而友元对象代理上的信息也保证了必要信息及对象结构的完整性。

===========================================================

2010-5-7

友元对象,仅仅是一个用来说明对象图中对象关系的一个概念,就象子对象、父对象等关系,对实现上没有特别限定与要求。友元对象代理,这是针对友元对象在仓储方面而提出的,即使用增加数据库的冗余度,来减少数据库的访问次数。也就是说,在使用友元对象的对象的数据存储表中保存友元对象的主键及其它一些关键信息,使用这些信息在对象被读取时,生成一个友元对象的代理,这个代理包含了这些信息,当真正需要使用友元对象的业务及其它一些信息时,才真正读取友元对象,并替换掉代理。

这说明,在真正领域建模时,描述的是对象图,模型之间的关系,它们是纯粹的。如果内存够大,CPU够快,又不需要网络之间的序列化或数据交换,也不会当机停电之类的,那么也就可以不用仓储,也就没有什么延时加载之类的说法。所以,在设计实现领域模型时,应该是纯粹的,至少尽量不受外界环境污染,为适应外界环境而提出的概念、开发的框架,是对领域模型的辅助,不应该影响领域模型。所以友元对象代理,是为解决频繁数据访问的,它不应该成为领域模型概念的一部分,它最多只仓储框架中实现的一部分。