欢迎光临南京典乐信息科技有限公司
24小时:400-025-1949
繁體版
手机版
公司新闻
行业新闻
当前位置:首页 » 新闻中心 » 行业新闻

活动场景的参与者身份

发表日期:2017-11-14 17:10:48文章编辑:浏览次数:269 标签:行业新闻    

1)先分清一下角色的概念吧:我在本文中的角色的含义和你所说的角色(权限的集合)应该是两个概念,你的是传统意义上的User-Role-Permission中的Role,而我所说的角色则是指活动场景的参与者身份,可以理解为拍电视剧时电视剧里的人物的角色;不仅仅是人可以扮演角色,事物、地点也可以扮演;这点 ...

1)先分清一下角色的概念吧:我在本文中的角色的含义和你所说的角色(权限的集合)应该是两个概念,你的是传统意义上的User-Role-Permission中的Role,而我所说的角色则是指活动场景的参与者身份,可以理解为拍电视剧时电视剧里的人物的角色;不仅仅是人可以扮演角色,事物、地点也可以扮演;这点我在文中已经分析过了;

2)关于角色及其扮演者的分析与结论,我也感觉有点难达成共识,看一下我发的前一篇文章就知道了。在分析阶段:我会从活动出发,分析活动参与者,即角色,然后再思考角色扮演者,从而完成整个分析;而在设计编码阶段:则从建模开始,先设计领域对象即角色扮演者,再设计角色,再编写角色交互的场景相关的代码;这是两个相反的过程;我个人认为我们在分析业务时,或者说用户在谈业务需求时,总是围绕活动或过程展开,他不会说这个聚合怎么样,这个实体该有哪些属性或行为;我个人认为Eric Evans的那套DDD模型还是很难与用户沟通,虽然程序员相对容易理解。但很多时候程序员也会产生很多理解不一致,比如聚合根的问题上,往往理解差别很大;我觉得我们在分析事物时引入角色的概念,是为了和用户大脑的思考拉近距离,实际上用户头脑中产生也都是角色,比如一个人被谋杀了,人们想到的肯定是被害人、凶手等概念,而这些概念不正是角色吗?被害人和凶手都由人扮演,如果我们把被害人的属性和凶手的属性和行为全部放在人这个实体上,显然不太合理,会导致人的职责过于庞大,虽然不违背分析原理,但违背设计原理。


3)关于你提到的DCI本质上没有解决职责如何分配的问题,确实没有!就像你所说,它只是把对象的一些依赖场景的属性和行为分散到了角色中而已;这样做也许对最终效果来说没有区别,你把所有属性和行为都放在一个对象中也可以;我认为DCI的真正好处是让我们的代码看起来和用户的想法更接近,用户说了什么交互场景,什么活动,我们的代码中也就会有什么场景,会有相应的场景参与者角色,这样做极大地提高了代码的可读性;我认为这才是DCI的真正意义所在;而这也是为什么我文中说DDD中的领域对象是静态的,只注重静态结构的原因;


4)你可能会角色这样可能会导致角色漫天飞,有点过度设计。确实,所以有时我们在真正实现的时候,可以考虑让领域对象本身就实现某些角色,这样就不用新定义角色类,但同时也不破坏DCI的理念;在我的示例源码中的图书馆这个实体类就是本色出演图书馆角色;


5)关于你提到的用贫血模型+面向过程+分层架构的开发方法,确实很容易入手,在一定程度上也很容易维护;但它同时也放弃了面向对象的理念,因为此时的对象本质上和结构体(存放数据的容器)没有本质区别;这已经不能算是真正的面向对象开发;另外,我理解的Eric EvansDDD中的领域模型是充血的;

专业服务:上海高端建站,上海网站制作,上海网站设计,上海网站制作公司

咨询电话:400-025-1949(7*24小时在线服务)

咨询QQ:260193150

公司网址:www.icanpk.com

本文地址:http://www.f5f6.com/news/detail_180.html

相关新闻

两Q友非法入侵他人网站推广赌博公司 上海医药官网等中招

两人利用木马信息侵入上海医药、世纪华联等单位官网串改链接帮助…

日期:2018-07-28 浏览次数:298

3月8日后上海长江二桥车道封闭维护 为期22天

为保障路桥结构和交通通行安全,经市政府批准,上海长江第二大桥…

日期:2018-03-08 浏览次数:281

怎样解决企业网站没有客户咨询的问题?

我们都知道如今是互联网的时代,传统的线下业务已经满足不了企业…

日期:2018-03-06 浏览次数:235

房地产税还有2年到达战场,3千多上海人涌向了河西...

关注两会3月4日的人大新闻发布会上,针对房地产税,发言人张业…

日期:2018-03-06 浏览次数:133

上海仙林汽配城内一物流公司卷款跑路

3月5日,有市民反映,上海仙林汽配城内的一家物流公司突然跑路…

日期:2018-03-06 浏览次数:106

关于我们
技术支持
联系我们
南京典乐科技
客服电话:400-025-1949 (工作日9:00~18:00)
项目经理:138-519-41123
咨询 Q Q:260193150
公司地址:上海中华路420号江苏省科技中心5层
客服QQ
获取报价
联系电话
400-025-1949
返回顶部