如何识别什么不是一个类?

时间:2009-08-14 14:09:23

标签: language-agnostic oop

我知道经验法则是用户使用的名词可能是一个类。类似地,动词可以被制成动作类,例如谓词

鉴于用户的描述,您如何 -

  • 确定哪些不属于课堂

3 个答案:

答案 0 :(得分:3)

唯一真正的答案是经验。但是,有些事情(对我来说无论如何)都无法在你的设计中建模。例如,如果用例说:

“然后将包裹放在UPS面包车上”

没有必要对面包车进行建模。您可以通过考虑系统边界来做出这种决定 - 您不能也无法控制货车。但是,

“我们向UPS提出要求取件的请求”

可能会导致UPSPickup对象。

答案 1 :(得分:0)

规则很简单。

  • 一切都是对象。

  • 所有对象都属于类。

在极少数情况下(极少数情况下),您会遇到一些特殊的类/对象混淆。

  1. 所有静态方法的“库”。这是一个实现选择,没有用户可以看到这一点。

  2. Singleton ,其中只能有一个给定类的对象。有时会发生这种情况。

答案 2 :(得分:0)

在OO语言中,这不是一个问题,即什么是一个类,而是“这个数据/功能属于哪个类?”

与其他软件架构方面一样,有规则,但最终它是一门需要经验的艺术。有很多关于软件设计的书籍,但简单的参考是Coupling and Cohesion

  • 单个模块/组件的凝聚力是其职责构成有意义单元的程度;更高的凝聚力更好。
  • 模块/组件之间的耦合是它们相互依赖的程度;较低的耦合效果更好。