类方法在iOS中如何工作?

时间:2011-01-14 21:01:38

标签: objective-c oop ios methods

我使用了类方法,甚至将它们与书籍一起编写。 我听说它们被描述为工厂方法。 我知道它们本身就是一个类,而不是一个类的实例。 我也读过它们,但我仍然不觉得我真的理解它们。

你能提供任何有助于我和其他人理解课堂方法的好的比喻或关键区别吗?

我的一部分问题似乎是你在一个类和一个类的实例上进行操作之间的动态。这仍然是一个滑稽的问题,这在本次讨论中似乎非常重要。

有人可以尝试将类方法与真实世界的比喻联系起来吗?

我已经解释了对没有这样科学背景的朋友的抵制。它并不完美,但它有很多帮助。

想象一下,水流畅通无阻。现在假设我们有一个蝶阀(就像附图所示)。让我们关闭80%的阀门,这样可以减少水的流量。阀门“像”电路中的电阻器,水“像”电,管道是电线。为了增加电阻器的阻力,“逐渐”关闭流水管中的阀门。

有没有办法在汽车工厂,花生酱三明治或同样有形的东西之间画一个比喻?

感谢您的帮助。

-A

alt text

1 个答案:

答案 0 :(得分:5)

将课程视为汽水机。 cans(实例)通常是更有用的项目,但机器本身也是您与之交互的东西。当您在机器上按某些按钮(类方法)时,它会为您提供罐头。也可能有按钮告诉你汽水的价格,或退还你的硬币,或机器的创建者(你)认为给机器按钮的任何其他东西。这台机器绝对不同于罐头 - 它只是定义了你能买到的苏打水。

(为了清楚起见:这实际上并不是示例中的一个类 - 实例关系。苏打水不是苏打机的实例,就像水实际上不是电。但它是如何你的好镜子与Objective-C等语言相关并与类和实例交互。)