【问题标题】:iPhone Objective-C what are the benefits of functions vs instance methods?iPhone Objective-C 函数与实例方法有什么好处?
【发布时间】:2011-12-09 16:32:00
【问题描述】:

我找到了这篇关于如何逐行读取文件的文章,它使用函数读取每一行:Objective-C: Reading a file line by line

我想增加我的代码重用并将更多代码放入更小的可重用部分。我应该使用 Objective-C 的方法或函数吗?我说的是每分钟会执行数百次的代码。

谢谢!

【问题讨论】:

    标签: objective-c function methods


    【解决方案1】:

    在方法和函数之间进行选择从来都不是可重用性的问题,也很少是速度问题(无论如何,每分钟数百次意味着每秒数次,这几乎没有关系)。

    要考虑的要点是

    1. 您更愿意思考函数对对象做某事,还是在对象中按照你的命令做某事?
    2. 您要继承对象并覆盖其行为吗?

    在逐行读取文件的情况下,我建议采用更简单的方法——当然,除非您正在执行 OOP 分配或只是为了练习而执行 OOP。这并不是说 OOP 有什么问题——它是一种很棒的技术,当你需要对复杂的行为进行建模时一定要使用它。只是对于一个简单的脚本来说,它几乎总是矫枉过正。

    【讨论】:

    • 假设我有一个循环需要迭代 3 个不同命名的变量。当我在 java 中工作时,我会简单地定义一个具有特定返回类型的方法 method(variableA,VariableB,VariableC) 并调用它。这产生了一个非常干净的代码,并允许我管理复杂性。不知何故,当我切换到目标 C 时,这迷失了,因为我不是 C 程序员,不知道什么时候使用函数是合适的,而不是。我不打算在其他类中重写或重用这些函数,它们只是为了我自己的理智!
    • 我使用基于GRASP 模式的简单技术——如果我可以使用列出的任何方法将责任分配给对象,我就会编写一个方法。如果我不能,函数就是要走的路。
    【解决方案2】:

    使用类和方法。代码重用是object oriented programming 的主要目标之一。代码重用也是发明Objective-C的主要原因之一,为C添加类和方法,C只支持函数,没有OOP。

    【讨论】:

    • 将函数转换为实例方法究竟如何提高代码重用性?尤其是在 OP 场景下会有哪些代码复用改进?
    • @Bavarious,据我了解,OP 希望“增加他的代码重用并将更多代码放入更小的可重用部分”,一般来说,而不是在特定情况下。但如果我错了,请纠正我。
    • 真;再读一遍也会给人这样的印象。现在我不太确定问题是什么。 :)
    猜你喜欢
    • 1970-01-01
    • 2011-06-18
    • 2012-10-21
    • 1970-01-01
    • 1970-01-01
    • 2016-03-27
    • 2011-08-03
    • 2011-01-10
    • 1970-01-01
    相关资源
    最近更新 更多