【问题标题】:What is the definition of Convenience Method in regards to Objective C?关于 Objective C 的便捷方法的定义是什么?
【发布时间】:2011-07-03 01:57:51
【问题描述】:

在我接触过的大多数语言中,有一种叫做便捷方法,它意味着该方法执行一些非常频繁地完成的小任务,因此使用说更方便方法。

在 Objective-C 中,这个定义是否成立?还是它通常只用于描述返回预构建对象的类方法?前任。 [NSString stringWithContentsOfFile:...]

这只是一种偏好,还是这些术语有一些硬性和快速的定义?

干杯, 斯蒂芬

【问题讨论】:

    标签: objective-c ios definition convenience-methods


    【解决方案1】:

    您所说的实际上更具体地是Objective C中的“便利构造函数”。(请注意,它实际上并不是C++/Java/C#意义上的构造函数,它实际上是一个对象初始化程序/工厂方法,但看起来成为调用“便利构造函数”的约定)。 Obj C 中的“便利构造函数”是一种约定或模式,用于为采用特定参数的类创建构造函数/初始化程序/工厂方法。此模式还具有一些您应该遵循的特殊约定(例如在构造函数中自动释放新对象),以便您的自定义类与内置类型很好地匹配。

    查看此页面(稍微向下)了解更多信息:http://macdevcenter.com/pub/a/mac/2001/07/27/cocoa.html?page=3

    至于“便捷方法”,这个特定的术语在Objective C中没有任何特殊含义。您可以在Obj C中创建任何类型的便捷方法,并且不期望它应该做什么或不应该做什么。只有“便利构造函数”才有特殊含义。

    【讨论】:

    • 不是“constructor”,而是“factory”或“initializer”(尽管后者通常只为实际的init 方法保留。)Objective-C 没有构造函数。
    • 好点……不过,调用这些“便利构造函数”似乎是惯例
    • 在很多方面,我认为将预构建对象作为工厂方法返回的便捷方法。
    • @Jonathan Grynspan:正如 Andy 所说,Objective-C 确实将这些方法称为“构造函数”。它们类似于 Java 工厂方法,但一般来说,“构造器”一词在 Objective-C 中更适用于此类方法,而“工厂”的使用并不多。 Apple 的文档使用这两个术语并声明它们是等效的。我认为区别可能是单例访问器也被视为工厂方法,因此“便利构造函数”被视为更具体。
    【解决方案2】:

    据我所知,“便捷方法”基本上是指您在此处定义的含义:单个方法或函数,由于其使用频率而替换了更复杂的一系列调用。

    在 Objective-C 中,创建新实例的“普通”方式类似于 NSSomething * mySomething = [[[NSSomething alloc] initWithParam:... andParam:...] autorelease]。许多类提供了方便的构造函数来简化这三个步骤(事实上,在大多数情况下,它们可能确实做了完全相同的事情,但封装在类方法调用之后)。

    【讨论】:

      猜你喜欢
      • 2014-03-24
      • 1970-01-01
      • 2011-07-10
      • 1970-01-01
      • 2010-11-04
      • 2012-07-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多