Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Language agnostic 如何识别什么不是类?_Language Agnostic_Oop - Fatal编程技术网

Language agnostic 如何识别什么不是类?

Language agnostic 如何识别什么不是类?,language-agnostic,oop,Language Agnostic,Oop,我知道经验法则是,用户使用的名词可能是一个类。同样,一个动词也可以变成一个动作类,例如谓词 根据用户的描述,您如何- 确定哪些内容不可编入类 规则很简单 一切都是对象 所有对象都属于类 在极少数(非常罕见的情况下)会出现一些特殊的类/对象混淆 所有静态方法的“库”。这是一个实现选择,没有用户可以看到这一点 一个单例,其中给定类只能有一个对象。这种情况有时确实会发生 规则很简单 一切都是对象 所有对象都属于类 在极少数(非常罕见的情况下)会出现一些特殊的类/对象混淆 所有静态方法的“库”

我知道经验法则是,用户使用的名词可能是一个类。同样,一个动词也可以变成一个动作类,例如谓词

根据用户的描述,您如何-

  • 确定哪些内容不可编入类
      规则很简单

      • 一切都是对象

      • 所有对象都属于类

      在极少数(非常罕见的情况下)会出现一些特殊的类/对象混淆

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

    • 一个单例,其中给定类只能有一个对象。这种情况有时确实会发生

    • 规则很简单

      • 一切都是对象

      • 所有对象都属于类

      在极少数(非常罕见的情况下)会出现一些特殊的类/对象混淆

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

    • 一个单例,其中给定类只能有一个对象。这种情况有时确实会发生


    • 唯一真正的答案是经验。然而,很明显,有些东西(无论如何,对我来说)无法在您的设计中建模。例如,如果用例说:

      “然后包裹被放在UPS货车上”

      没有必要对货车建模。你可以通过考虑系统边界来做出这样的决定——你不能也不能控制货车。但是,

      “我们向UPS提出取货请求”


      很可能会导致一个更高的目标。

      唯一真正的答案是经验。然而,很明显,有些东西(无论如何,对我来说)无法在您的设计中建模。例如,如果用例说:

      “然后包裹被放在UPS货车上”

      没有必要对货车建模。你可以通过考虑系统边界来做出这样的决定——你不能也不能控制货车。但是,

      “我们向UPS提出取货请求”


      很可能会导致对象升级。

      在OO语言中,这不是一个将什么放入类的问题,而是“这个数据/功能进入哪个类?”

      与其他软件架构方面一样,也有规则,但归根结底,这是一门需要经验的艺术。有很多关于软件设计的书,但是有一个简单的参考

      • 单个模块/组件的内聚性是指其职责构成有意义单元的程度;内聚度越高越好
      • 模块/组件之间的耦合是它们相互依赖的程度;耦合度越低越好
      在面向对象语言中,问题不在于类中包含什么,而在于“这些数据/功能属于什么类?”

      与其他软件架构方面一样,也有规则,但归根结底,这是一门需要经验的艺术。有很多关于软件设计的书,但是有一个简单的参考

      • 单个模块/组件的内聚性是指其职责构成有意义单元的程度;内聚度越高越好
      • 模块/组件之间的耦合是它们相互依赖的程度;耦合度越低越好
      您可以创建不同的对象模型。没有合适的人。那些有效的是正确的。如果您的解决方案有效,仍然可以改进。因此,它实际上都是关于经验的,这就是为什么人们使用设计模式(可重用的抽象和优秀设计部分的理论)和重构(查看气味并改进当前设计)。你可以创建不同的对象模型。没有合适的人。那些有效的是正确的。如果您的解决方案有效,仍然可以改进。所以它实际上都是关于经验的,这就是为什么人们使用设计模式(一个好的设计部分的可重用的抽象和理论)和重构(来观察气味并改进当前的设计)。