什么是理解对象交互的技术

时间:2009-08-21 18:09:18

标签: oop object

在启动新应用程序时,有哪些方法可以决定您需要哪些对象,应该做什么以及它们应该如何相互交互?

这是白板的工作,还是只是根据需要开始编码和移动东西更容易?

6 个答案:

答案 0 :(得分:7)

CRC卡或类责任协作卡是一种很好的方法 - 请参阅the Wikipedia page

他们是集体讨论(作为一个团队或仅仅是你自己)的好方法,你需要哪些课程,每个课程将负责什么,以及他们如何互相交流。

答案 1 :(得分:3)

您可能想尝试:

CRC Cards

这些卡片将有助于定义对象,其职责和合作。

创建CRC卡时,您需要完成整个过程。该过程定义了有助于使每个类简洁并且实际上只执行所需操作的规则。

答案 2 :(得分:2)

这应该或多或少地从要求中“自然地”下降。

您是否对应用程序应该执行的操作,范围等等有充分的了解?

这实际上取决于您所谈论的项目规模:对于构建商业软件的团队而言,必须采用的方法和严谨程度与个人项目不同。

那说,一些一般的提示是:

1)在您选择的媒体上(我喜欢白板)开始列举用例或用户故事。继续前进,直到你觉得你已经获得了最重要/最包含的80%。

2)如果您对“WHAT”(用例)的简洁和多少或多或少的定义感到满意,您可以开始计算“HOW”(对象,算法等)。我建议偏向于降低复杂性:你不需要复杂的多层对象层次结构,除非你真的非常需要它(即便如此,你可能也不需要)。

3)我倾向于强制执行“无编码”规则,直到#1和#2完成,抛弃原型或特定方法的探索,尽管如此。在你完全理解你正在构建的对象模型之前,很容易开始抛出代码并发现你被你提出的对象模型“困住”。

4)完成需求收集后,您可以使用任何#方法开始分解功能单元/对象/角色/等。 CRC卡是一种方法;我也成功使用UML class&序列图。

我个人喜欢用UML做很多白板;我经常用数码相机拍照来存档思维/方法。当涉及穷人的文件或回答“为什么/不是我们......”这两个月的问题时,这些要好得多。

答案 3 :(得分:2)

我认为答案取决于几个因素:

  • 项目的规模是多少?对于一个小项目,可以很容易地了解可能需要的三个或四个对象并开始编码。对于更大的项目,重要的是事先开始列出它们,以便您可以开发出良好的对象名称和层次结构。

  • 该项目有多少人?如果不仅仅是你,你应该坐下来计划谁将要做什么,这需要一个需要的类列表。

对于任何大于小型(一天或两天)项目的东西,在开始编码之前,值得花一些时间进行设计。白板很适合这个,但要确保你在完成后拍照!

答案 4 :(得分:1)

序列和类图。在设计时,这些都有很长的路要走。你要做的最后一件事,除非你不受时间限制。资源,只是开始编码。

答案 5 :(得分:1)

可能最好从白板或某些设计概述开始。这完全取决于您的应用程序需要做什么。找出应用程序需要执行的操作。相应地将对象与您将应用程序分解为适当的部分后出现的方法相关联。