Sta*_*ent 29 oop ooad crc-cards
我一直想知道人们如何使用CRC(类责任合作)卡.我在书中读到过它们,在互联网上发现了模糊的信息,但从未真正掌握过它.我认为有人应该制作一个显示CRC卡会话的YouTube视频,因为我的一本书描述它很难用文字表达,它应该"由已经掌握它的人教授".可悲的是,我知道周围没有人使用CRC卡,我想了解更多.
任何链接到视频,显示人们用这种技术进行阐述,将不胜感激.
Ken*_*eck 33
在SO答案中总结很难,但我会尝试.设计对象的挑战之一是从整体角度思考思维,从单个对象的角度思考.您需要整体透视才能完成计算,但您需要单独的对象透视图来有效地细分逻辑和数据.
保持这种平衡是CRC卡的用武之地.当他们坐在桌子上时,你可以看到整个计算.但是,当你拿起一张卡片时,你在物理上,动力学上鼓励采取那个对象的观点 - 我有这个计算的一小部分与有限的资源有关,我将如何完成它?
随着时间的推移,同时保持两种观点的能力似乎渗透到大脑中.越来越少写在卡上.然后卡片是空白的.过了一段时间,人们只是指出卡片的位置,如果他们打算从堆栈中取出一个空白的卡片.最终,人们可以在不需要卡片的情况下获得思维方式的好处.但是,当与没有掌握平衡的人交谈时,拔出实力卡可能是一种有用的通信辅助.
我发现卡片最大的缺点是缺乏反馈.你可以欺骗自己如何编写代码.我建议只使用卡片直到出现一个有趣的问题,转向测试/代码进行确认,然后重新开始设计.
沃德和我在15年左右的时间制作了一个设计会议的视频,但我没有在任何地方找到它,我也没有副本.我不确定它在任何情况下都可以用作教学工具.我不知道其他视频,但它们可能很有趣,特别是如果你要比较几种不同的设计师风格.
Jur*_*uri 13
我会尝试给出答案.因此,CRC卡通常用于在面向对象的环境中进行建模,以便更好地理解必须开发的系统(但我认为您已经知道了).当你在实际实施之前到达时,CRC卡就到了最后.达到该级别的不同步骤可能如下:
我希望我能以某种方式帮助你.
问候,
Juri
在我看来,最简单的方法是使用它们而不会弄得一团糟,就是在文件头中写下一些CRC卡,如下所示:
///////////////////////
//* CRC CARD
//* Class: UISliderEvent
//* Responsability: Event that holds the value and id of a Slider's movement
//* Collaborators: UISlider, UIEvent
//////////////////////
Run Code Online (Sandbox Code Playgroud)
然后,每当您需要添加功能时,请检查您的卡,并确保您不会违反您在其中所述的任何合同.比如所有的突然取决于UIMouseEvent,例如,卡片上没有任何地方,所以它是禁止包含它的.