[CSLA.Net]职责驱动设计方法(业务领域建模)

职责驱动设计(业务领域建模)

(读书笔记:Expert C# 2008 Business Objects)

基于对象的责任进行分析

CRC表

潜在对象(C)----------职责(R)---------协作方(C)

-----------------------------------------

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

------------------------------------------

通过这个表,可以看出来,对象的责任是否清晰。如果职责描述不清,或者内容冗长,那么可以肯定是有问题的。

对象需要处理一个以上的职责,这意味着是有缺陷的。

画对象关系表,反复的修订,逐渐细化

(图)

检查:

1)是否是有可能重复的对象

2)是否是一个值对象(无标识符,无操作方法)

3)是否有循环嵌套,引用(很危险)

4)与其他对象无关(还有尚未发现的关系)

5)如果是一个列表,加载全部内容。(对用户来说,他的一个选择操作,可能会造成高昂的系统开销。这样的设计是不负责任的。)

 6)某个对象是否是推断出来的(在业务领域没有,是开发人员创造出来的)。

设计时的性能优化

  1. 对象的属性,要考虑是否是只读的。如果没有特别的要求,不要给调用方犯错的机会,同时能减小系统的开销。
  2. 考虑对象是否会经常发生变动——考虑是否将它缓存起来(不一定是放在内存里)。当然,对象在多用户操作时,需要系统通知用原来的值是否被人修改过了。(这好像是另外一个问题……)

设计时在对象模型提供导航支持

这不是必需的。但是这是很有好处的。比如我们有个ProjectInfo对象,那么在UI层,有可能用户会由此导航到Project对象,典型的方法是调用ProjectInfo. GetProject()

最终的设计反映在CRC表,对象关系图。我们拿用例来复核(测试),看看是否能满足用例。

转载于:https://www.cnblogs.com/Longray/archive/2010/11/06/1870635.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值