博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《C++编程惯用法——高级程序员常用方法和技巧》——1.4 使用CRC卡片来辅助设计...
阅读量:6120 次
发布时间:2019-06-21

本文共 933 字,大约阅读时间需要 3 分钟。

本节书摘来自异步社区出版社《C++编程惯用法——高级程序员常用方法和技巧》一书中的第1章,第1.4节,作者: 【美】Robert B. Murray ,更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.4 使用CRC卡片来辅助设计

由Kent Beck和Ward Cunningham设计的CRC卡片是一种用来帮助设计人员在设计阶段前期进行设计的工具,此时设计人员应该做的事情就是:从问题域中找到合适的对象并理解它们之间的关系。

CRC卡片的含义十分简单,也没有什么技术含量在里面。当一群人聚在一起开始进行高层设计时,他们会为每个潜在的类建立一张索引卡片,在该卡片上面,他们会写上类的名字,它主要的功能,以及它将会和哪些类进行交互。

有了这些卡片后,设计者就可以利用它们来模拟不同的场景。每个参与者负责其中一个或多个对象的角色,然后描述他的对象在面对其他对象的请求时应该做出的反应。通过这种角色模拟,设计者就可以进一步细化系统中类的职能和协作,并把它们记录在卡片上。整个设计小组可以也基于这种讨论来为那些有着不精确(或者是模糊)含义名字的类取一个更贴切的名字。

由于卡片上面的空间有限,这就鼓励设计者们尽可能采取简单的抽象模型—我们很难在一张索引卡片上面描述出复杂的抽象模型。这种卡片也有助于设计者将类进行分类,以构造合适的继承体系。我们可以将那些获得大家一致通过的卡片放到桌子上面,并接着对那些剩下的卡片进行重复的讨论,直到大家取得一致意见为止。

进行这样的角色模拟有时可能会出现一些偏离项目的话题,但它同时也鼓励大家进行“头脑风暴(brainstorm)”,将自己认为想的比较好的东西在非正式的场合中提出来和大家一起讨论。虽然大部分的离题讨论都将无疾而终,但有时偶尔的一两个火花也会产生那些在传统且正式的设计复审时产生不了的突破。

CRC卡片并不能代替完备的、用来描述类的行为细节的文档。它们主要的作用也就存在于设计的初始阶段:它们可以帮助设计人员正确地得到高层框架的信息,更早(而不是更晚)地理解和分辨出那些重要的问题。

注意:它们不可能像索引卡片那样被整理,你可以将它们粘在墙上,并保留对它们进行重新排列的权利(就像你使用Post-It随手贴一样)。

转载地址:http://jpqka.baihongyu.com/

你可能感兴趣的文章
smartbits的国产版本minismb-如何配置Ping报文
查看>>
Python socket 模块的使用
查看>>
域名的解析过程
查看>>
Eclipse、 pycharm、 Win7、shell常用命令
查看>>
RGB内部实现&常用颜色&与字符串的转换
查看>>
Thinkphp 配置nginx pathinfo
查看>>
话里话外:对按单制造(MTO II)来说,供需链和供应链是一回事吗?
查看>>
只要是在公司“混”,此文对新人旧人都有好处!
查看>>
juniper路由器主备路由引擎主机名配置
查看>>
PHP程序标准注释
查看>>
win diskpart
查看>>
我的友情链接
查看>>
UIView's contentStretch属性
查看>>
delphi安装dpk控件
查看>>
PHP,Mysql-根据一个给定经纬度的点,进行附近地点查询–合理利用算法,效率提高2125倍...
查看>>
从WSDL文档中生成客户端支持代码
查看>>
android phone application 通知missed call的过程
查看>>
Iptables DDOS/CC 自动屏蔽脚本
查看>>
rsync,inotify
查看>>
单元测试入门
查看>>