Function 什么时候制作类和函数?

Function 什么时候制作类和函数?,function,language-agnostic,programming-languages,class-design,Function,Language Agnostic,Programming Languages,Class Design,我是一名编程初学者,当我开始编写代码时,我只是开始编写并解决问题。 我在一个主函数中编写整个程序。 我不知道什么时候制作类和函数 为了学习这些概念,我读了哪些好书?看一看 , 对象实际上是离散的 一系列功能和程序, 与某一特定事物有关的 现实世界的概念,如银行 帐户持有人或曲棍球运动员 电脑游戏。其他 软件只能通过以下方式访问对象: 调用其函数和过程 被允许由 局外人 基本上,您可以使用函数/过程/方法来封装执行特定任务的特定代码部分,或者用于重用 类用于封装/表示一个对象,该对象可能有自己的数

我是一名编程初学者,当我开始编写代码时,我只是开始编写并解决问题。 我在一个主函数中编写整个程序。 我不知道什么时候制作类和函数

为了学习这些概念,我读了哪些好书?

看一看

,

对象实际上是离散的 一系列功能和程序, 与某一特定事物有关的 现实世界的概念,如银行 帐户持有人或曲棍球运动员 电脑游戏。其他 软件只能通过以下方式访问对象: 调用其函数和过程 被允许由 局外人

基本上,您可以使用函数/过程/方法来封装执行特定任务的特定代码部分,或者用于重用

类用于封装/表示一个对象,该对象可能有自己的数据,以及与该对象一起使用的特定函数/过程/方法


在某些语言中,类可以是静态的,使用静态函数/过程/方法,然后将其用作辅助函数/过程/方法这是一个风格和偏好问题,取决于您工作的地方的正式程度,这可能是一个标准问题。我遵循两条规则

  • 班级
    • 相关数据集属于同一类
    • 对该数据进行操作的函数应该一起在类中
      经典的例子是Car类函数是Drive和AddGass
  • 功能
    • 如果您要多次使用它,那么它应该在函数中使用一次
    • 大多数函数不应超过一屏代码
    • 函数应该把一件事做得很好,而不是把一大堆事情做得很差

有很多种观点,但随着时间的推移,你必须形成自己的风格

我认为这里的标准答案是,您应该组织代码,使其可读性和可维护性。这样说,同样重要的是考虑组织代码的成本和期望代码的生存时间。

更直接地回答您的问题:应该使用函数替换重复的或包含良好的代码片段。如果在相同类型的元素/数据上反复应用相同的10个操作,您可能需要考虑将所有这些信息收集到一个更简洁、更清晰的函数中。通常,函数需要定义良好的输入和输出

类本质上是将函数和数据收集在一起。就像您应该使用函数将操作收集到简洁、定义良好的操作集合中一样,类应该组织要存储在一起的相关函数和数据。也就是说,如果您有一系列操作方向盘、制动器、加速器等的功能,您应该考虑使用Vehicle类来组织这些相关功能和数据/对象

除了作为一个组织元素,类还应该被用来方便地重用和创建多个“东西”——假设您想要这些工具的集合。类允许您将意义或至少某些语义与程序联系起来


然而,这一切的意义在于,在编写和维护您的程序时,让您和其他人的生活变得更加轻松。所以,无论如何,当你需要在不到十分钟内解决一个问题,并且你认为这是一个一次性使用的程序时,如果你认为这会让你更快地完成你需要完成的事情,那么就忽略所有这些。请记住,所有这些组织、语义和重复操作的易用性都是为了更容易实现您的目标

这是一个非常普遍的问题,所以有几条经验法则:

  • 代码重用:当您在两个地方有相同或非常相似的代码时,应该将其移动到函数中

  • 可读性:如果一个函数在屏幕上跨越多个页面,您可能希望将其拆分为多个函数

  • 焦点:每个类或函数只应执行一个特定任务。所有与此目的无关的内容都应委托给其他类/功能


其实很简单,尼基


将代码拆分为方法的目的只是为了允许其重用。当您创建一个方法时,您允许您的程序在任何时候从多个地方调用它,而不是一次又一次地重复代码

所以每次你写台词和思考嘿,我可能在程序的某个地方再次需要这个功能,然后你需要把它放在一个方法中

至于类,您将尝试将类似的功能分组在一起。尽量使课堂简短。如果需要几个类,还可以将它们分组到包中,以此类推

当我写代码时,我通常对我将再次使用的东西有一个很好的想法。但通常我会开始写几行代码,然后意识到我在过去写了一些非常类似的东西。所以我会找到它并将其放入一个方法中,然后两个或更多的位置现在可以调用它。这就是最好的重用

您可以经常使用分析器来查找各种度量,这些度量将对重用和代码复制“打分”


学习愉快

仅供参考,随着您进入更大的项目,功能何时以及为什么有用将变得更加明显。当我第一次开始的时候,我也对它们的使用感到有点困惑,当你的整个程序只有20-50行代码遵循一条非常线性的路径时,它们没有多大意义。但是,当您开始使用一些代码时,将其放入函数中是有意义的。如果您只需要读取描述性函数名,而不需要破译接下来的5行代码,则更易于阅读和遵循程序逻辑。

我知道这个问题与语言无关,