Oop 分离代码模块

Oop 分离代码模块,oop,Oop,在开发时,创建小类来表示小数据结构有多有用?例如,作为一个简化的例子,一个程序使用字符串数组来表示某物的名称,例如汽车。不只是将这个数组保存在一个方法或类中,将它分离并使其成为自己的类有多有用?通过这种方式,我认为它可以对自己负责,并且可以对它执行更多的操作—验证等,这些操作都可以单独进行。而且,它可以在整个系统中轻松重用。但是它停在哪里呢?例如,在car示例中,您可以继续创建car对象等。它真的可以是永无止境的,不是吗?只要您重复代码对数据结构进行操作,就可以这样做 Chris B.对相关数据

在开发时,创建小类来表示小数据结构有多有用?例如,作为一个简化的例子,一个程序使用字符串数组来表示某物的名称,例如汽车。不只是将这个数组保存在一个方法或类中,将它分离并使其成为自己的类有多有用?通过这种方式,我认为它可以对自己负责,并且可以对它执行更多的操作—验证等,这些操作都可以单独进行。而且,它可以在整个系统中轻松重用。但是它停在哪里呢?例如,在car示例中,您可以继续创建car对象等。它真的可以是永无止境的,不是吗?

只要您重复代码对数据结构进行操作,就可以这样做


Chris B.对相关数据提出了很好的观点。请参阅重构示例。

在重复代码对数据结构进行操作时,立即执行此操作是有意义的


Chris B.对相关数据提出了很好的观点。请参阅重构示例。

在确定何时需要将数据结构重构为自己的类时,我使用了以下几条准则:

  • 我是否存储了大量相互关联的数据?如果您发现自己存储了几个数组,并将它们作为一个单元进行操作,那么最好存储一个包含对象的数组

  • 这些数据结构是否向其他类公开?如果其他类直接向数据公开,可能最好将数据封装在自己的类中,这样可以很容易地将概念模型和实际模型分开

  • 我发现自己经常对数据执行操作吗?存储名称数组可能不错,但如果开始向包装类添加
    validateName
    checkName
    等方法,重构并将这些方法放在
    名称
    类本身上可能是个好主意


请记住:在前面放置一个像样的对象模型通常比在事后尝试移植一个要容易得多。您不应该武断地这样做,但是当您在使用程序时,您应该注意当您的数据结构变得难以控制时——这是一个很好的迹象,您应该根据需要重构它们

在确定何时需要将数据结构重构为自己的类时,我使用了以下几条准则:

  • 我是否存储了大量相互关联的数据?如果您发现自己存储了几个数组,并将它们作为一个单元进行操作,那么最好存储一个包含对象的数组

  • 这些数据结构是否向其他类公开?如果其他类直接向数据公开,可能最好将数据封装在自己的类中,这样可以很容易地将概念模型和实际模型分开

  • 我发现自己经常对数据执行操作吗?存储名称数组可能不错,但如果开始向包装类添加
    validateName
    checkName
    等方法,重构并将这些方法放在
    名称
    类本身上可能是个好主意


请记住:在前面放置一个像样的对象模型通常比在事后尝试移植一个要容易得多。您不应该武断地这样做,但是当您在使用程序时,您应该注意当您的数据结构变得难以控制时——这是一个很好的迹象,您应该根据需要重构它们

我想如果你把你的问题说清楚一点会有帮助的。显然,在我看来,OO代码有时会走得太远,但你到底在问什么?我看到了一个场景,但它看起来很模糊。好吧,假设我需要一个对象集合,这些对象基本上都是字符串作为名称,也可能是字符串格式的描述,以及可能添加的任何其他属性。最好是将其保存在类所需的内部,还是最好将其本身作为对象,即使它只有几个字符串属性。此外,如果它将成为自己的对象,那么它的数据验证可以由自己的构造函数处理,而不是在其他地方处理。在我看来这似乎是合乎逻辑的,但可能有点过头了。好的设计的目标是最终提供可维护性和清晰性,而没有真正的硬性规则。你当然可以继续下去,为整个宇宙建模,你的项目可能会与之互动。在这一点上,理解域中的对象是很重要的,在建模之后,您将知道什么时候一个给定对象的简单集合就足够了,或者是否需要一个更具逻辑性的单元。我认为,如果您将问题说得更清楚,这将有所帮助。显然,在我看来,OO代码有时会走得太远,但你到底在问什么?我看到了一个场景,但它看起来很模糊。好吧,假设我需要一个对象集合,这些对象基本上都是字符串作为名称,也可能是字符串格式的描述,以及可能添加的任何其他属性。最好是将其保存在类所需的内部,还是最好将其本身作为对象,即使它只有几个字符串属性。此外,如果它将成为自己的对象,那么它的数据验证可以由自己的构造函数处理,而不是在其他地方处理。在我看来这似乎是合乎逻辑的,但可能有点过头了。好的设计的目标是最终提供可维护性和清晰性,而没有真正的硬性规则。你当然可以继续,ad nauseum,为你的项目建立整个宇宙的模型