【问题标题】:What are some techniques for understanding object interaction理解对象交互的技巧有哪些
【发布时间】:2009-08-21 18:09:17
【问题描述】:

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

这是白板的工作,还是开始编码并根据需要移动内容更容易?

【问题讨论】:

    标签: oop object


    【解决方案1】:

    CRC 卡或类别责任协作卡是执行此操作的好方法 - 请参阅 the Wikipedia page

    这是一种很好的方式来集思广益(作为一个团队或一个人)你需要哪些课程,每个课程将负责什么,以及他们将如何相互交流。

    【讨论】:

    • CRC 是一个非常好用的东西。您可以与其他人一起编写它们,然后播放您的应用程序的用例。这将帮助您更好地理解流程,查看课程,因为他们看到潜在的问题(例如其中一个课程向其他人询问太多信息或做太多事情)。
    【解决方案2】:

    你可能想试试:

    CRC Cards

    卡片将帮助定义对象、其职责和协作。

    在创建 CRC 卡时,您需要经历一个完整的过程。该过程定义了有助于使每个类简洁并真正只执行它需要的操作的规则。

    【讨论】:

    • 哇,不到一秒!
    【解决方案3】:

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

    您对应用的用途、范围等有深入的了解吗?

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

    也就是说,一些一般提示是:

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

    2) 当您对“什么”(用例)简洁且或多或少充分定义感到满意时,您可以开始制定“如何”(对象、算法等)。我建议倾向于降低复杂性:您不想要复杂的多层对象层次结构,除非您真的非常需要它(即使那样,您也可能不需要)。

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

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

    我个人喜欢在 UML 中做很多白板;我经常用数码相机拍照来存档想法/方法。当谈到穷人的文件或在 2 个月后回答“我们为什么不……”的问题时,这些总比没有好。

    【讨论】:

      【解决方案4】:

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

      • 项目的规模是多少?对于一个小型项目,很容易对可能需要的三四个对象有一个很好的了解,然后开始编码。对于较大的项目,提前列出它们很重要,这样您就可以开发出好的对象名称和层次结构。

      • 该项目有多少人?如果不止您一个人,您应该坐下来计划谁将从事什么工作,而这需要列出将需要的课程。

      对于比小型(一两天)项目更大的项目,在开始编码之前花一些时间进行设计是值得的。白板很适合,但请确保在完成后拍照!

      【讨论】:

        【解决方案5】:

        序列图和类图。当您在设计中时,这些会大有帮助。除非您在时间和资源方面不受限制,否则您最不想做的事情就是开始编码。

        【讨论】:

          【解决方案6】:

          最好从白板或一些设计概述开始。这一切都取决于您的应用程序真正需要做什么。弄清楚您的应用程序需要执行哪些操作。将应用程序分解为适当的部分后,将对象与您提出的方法相应地关联起来。

          【讨论】:

            猜你喜欢
            • 2011-11-29
            • 1970-01-01
            • 1970-01-01
            • 2016-01-04
            • 2011-07-12
            • 2010-10-13
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多