【问题标题】:Mixing procedural and Object oriented programming混合过程和面向对象的编程
【发布时间】:2009-05-13 11:44:25
【问题描述】:

所以,很久很久以前,我曾经在我的第一个 BBC Model B 上使用 Basic 进行程序性编程,然后在大学时使用少量 Pascal 以及一路组装。

然后出现了 OO,这似乎更加明智,这就是我在 C++、Perl、Java、Ruby 中使用的所有内容.....

在 iPhone 上休息了大约 8 年之后,我重新开始编写非 Web 的东西,我发现 Objective C 真的很容易上手,但时不时地不得不退出 Objective C 并回到普通的旧版本C 用于低级别的东西,这就是它再次回到过程编程的地方。

我所追求的是关于如何混合面向对象和过程样式、如何进行内存管理、是否将过程部分包装在对象中等方面的一个很好的指南。

对于 C 的良好程序风格的良好基本指南也会有所帮助,因为我什至似乎无法再用程序术语进行思考了。

【问题讨论】:

标签: objective-c oop programming-languages


【解决方案1】:

我的建议是使用面向对象编程作为实现的最高级别的组织和过程编程。 OO 最擅长定义接口、组件之间的契约、将代码划分为连贯的块等。

当程序员第一次开始学习对象时,有一种对对象发疯的倾向,当一个简单的内置类型就可以做到时,将所有可见的东西都变成对象。每个数字都成为一个类,然后方法在类上激增,以防万一。它可能会成为一种拖延,延迟您最终开始编写可以完成某些工作的代码。

【讨论】:

    【解决方案2】:

    如果有帮助,请将您的过程/函数视为静态类方法。您的内存引用的范围略有不同,但差别不大。如果您将函数限制为仅访问作为参数传递的数据,则更容易,因为您不必弄清楚符号。

    编辑:我应该澄清一下,我在这里是泛泛而谈。我还没有做过任何 iPhone 开发,所以我可以谈谈有关内存访问/管理的细节。

    【讨论】:

      【解决方案3】:

      据我所知,面向对象编程本质上是将数据和对这些数据的操作联系在一起。
      C++ 和 Ojective-C 提供了已经成熟的机制来帮助您,但您仍然可以自己设法做到这一点。

      许多 C 库只是将结构指针绑定为 OO 方法的第一个参数。
      您可以通过谷歌搜索“C 面向对象编程”找到更多相关信息。

      【讨论】:

        【解决方案4】:

        您不必以程序的方式思考。将所有低级别的东西包装到类中。你可以使用objective-c++。

        【讨论】:

          猜你喜欢
          • 2010-11-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-04-22
          • 2020-05-18
          • 1970-01-01
          • 2010-09-18
          • 2020-05-23
          相关资源
          最近更新 更多