2011-01-14 36 views
3

私はクラスメソッドを使用していて、書籍と一緒にそれを書いています。 私はそれらをファクトリメソッドとして説明しました。 私はそれらがクラスのインスタンスではなくクラス自体で動作することを理解します。 私はそれらについても読んだことがありますが、私はまだそれらを本当に理解しているようには感じません。iOSでクラスメソッドはどのように機能しますか?

自分自身や他の人がクラスメソッドを理解するのに役立つような、優れたメタファーや主要な違いを提供できますか?

私の問題の一部は、あなたがクラスを操作しているときとクラスのインスタンスを動かしているときの間の動的なようです。それはこの議論では非常に関連しているような滑りやすい問題のままです。

誰かがクラスメソッドを現実世界のメタファーに関連付けることはできますか?

私は、このような科学的背景のない、友人に対する抵抗を説明しました。それは完璧ではありませんが、それは多くの助けになります。

水がパイプを通って流れることを妨げられないと想像してください。今度はバタフライ弁があると想像してください。バルブを80%閉めてみましょう。バルブは、電気回路の抵抗器に似ており、水は電気のようなもので、パイプはワイヤです。抵抗器の抵抗を増加させることは、流れる水のパイプ内の弁を徐々に閉鎖するようなものである。

車の工場、ピーナッツバターのサンドイッチ、または同様の有形のものの間に隠喩を描く方法はありますか?

ありがとうございました。ソーダマシンとしてクラスの

-A

alt text

答えて

5

と思います。缶(インスタンス)は一般的にはより有用な項目ですが、マシン自体も相互作用するものです。あなたが特定のボタン(クラスメソッド)をマシン上にプッシュすると、それはあなたに缶を与えます。また、ソーダの価格を教えたり、コインを返すボタン、または機械のボタンを与えると思ったマシンの作成者(あなた)があるかもしれません。このマシンは、缶とはまったく別物です。それはあなたが得ることができるソーダの種類を定義するだけです。

(例では、これは実際のクラスとインスタンスの関係ではありません。ソーダはソーダマシンのインスタンスではありませんが、水は実際に電気ではありません) Objective-Cのような言語でクラスとインスタンスに関連し、相互作用します。

+0

Aha ...ありがとうございました。 – Aaronium112

関連する問題