OOD的第一步?

时间:2010-05-24 08:29:26

标签: oop

OOD的第一步是什么?

7 个答案:

答案 0 :(得分:4)

没有步骤,这不是一个过程。

答案 1 :(得分:3)

答案 2 :(得分:2)

练习,广泛阅读和练习。

特别是与其他人一起审查和评论方法。

阅读不仅应涵盖OOD,还应涵盖其他人如何解决常见问题的模式。

答案 3 :(得分:2)

这是很多练习。第一件事是让你的思维围绕对象的工作方式 - 特别是如果你是一个程序程序员。

练习制作许多小物件 - 我从没见过太多物体的系统;这是可能的,但我从来没有见过它。当你需要将许多物体放在一个物体中时,它应该是非常明显的,但是当物体被分解时,它并不那么明显。

让对象做某事,不要问它的数据。尽量避免使用getter和setter,并专注于你要求它对数据做些什么的方法。如果您看到像o.a = o.b + o.c或o.setA(o.getB()+ o.getC()这样的代码,那么你做错了。

不断尝试重构重复。重复重写代码,直到没有(或尽可能少)。对于您的OO设计技能而言,这可能比其他任何练习都要多。随着你变得更有知识,尝试重构你以前不认为可以重构的事情。任何看起来像模式的东西都可能被重构。例如,这是一个非常基本的例子 - 如果你的代码行看起来像这样:

a = b + c * d;
g = h + i * d;

您的代码中可能缺少巨大的重构,即使它看起来不像是蝙蝠。您可能缺少一个可以容纳a,b,c的对象,而第二个实例将保存g,h,i,在创建这些对象后,一堆东西会影响到您的新对象。学会认识到这样的新机会至关重要。

我已经编程超过20年了,其中一半以上是OO,而且似乎每隔几年我就会知道这一切 - 一年后我回头意识到我是多么无知是

答案 4 :(得分:1)

第一步是面向对象的分析 - 其目的是识别构成系统的对象以及它们如何交互;根据这些知识,您可以指定对象的行为(接口方法),然后指定内部(对象所需的数据成员)

设计过程产生了许多图表 - 这些图表应该有助于计算系统的细节:

首先出现一组“用例” - 用例是对系统实现的场景的口头描述(一个应该选择最实质的场景);然后,这些用于识别应该映射到系统类的主要角色和概念。然后通过制定“对象交互图”,“类图”和“序列图”来改进这种理解,有时状态图用于可视状态机 - 这些图是获得更好理解系统的工具,因此您对系统有足够的了解,可以编写类头文件/类定义。没有固定的规则,其中一个图表首先出现,这些图表是适当使用的。

我发现以下一本书非常有用:

面向对象的分析和设计与Grady Booch的应用程序(第二版)

这本书逐步完成了设计几个示例系统的过程(我认为这足以阅读这些示例系统的设计过程);一个小问题是本书中使用的符号有点过时:现代实践是使用UML符号表示图表,但本书仍然使用较旧的Booch表示法。本书的优点在于它总是通过具体的例子来解释每个概念。

答案 5 :(得分:0)

有一些初步步骤:

  • 了解OOD(一般而言)
  • 了解问题/应用领域(功能规范)
  • 拥有高级/架构设计:了解您可以使用的O / S,库,框架等

然后我使用自上而下和自下而上的开发混合:

  • 自上而下:决定我希望拥有哪些组件和API(对象接口)以实现应用程序(然后开发这些API)

  • 自下而上:通过添加新方法和新类型的对象(有时将大对象拆分为几个较小的对象),决定如何向现有API(对象接口)添加新功能。

答案 6 :(得分:0)

OOD的第一步是OOD原则。查看The Principles of OOD