クラス<<自己を使うと、クラスやモジュールをいつ使うのですか?
class Helper
class << self
# ...
end
end
と
module Helper
class << self
# ...
end
end
あなたが他の上で1つを使用するとの使用量の違いはありますか?
クラス<<自己を使うと、クラスやモジュールをいつ使うのですか?
class Helper
class << self
# ...
end
end
と
module Helper
class << self
# ...
end
end
あなたが他の上で1つを使用するとの使用量の違いはありますか?
class<<self
は、クラスとモジュールの唯一の違いがあるため、赤いニシンのようです。おそらくあなたはに "私はインスタンス化するつもりはないが、いくつかのメソッドのための名前空間として(そしておそらくそれ自身のグローバルな状態を持つシングルトンとして)存在するオブジェクトを作成したいと思っています。
この場合、どちらも同じように機能します。
class Variation < Helper
代わりの
module Helper
module OwnMethods
# Put methods here instead of class << self
end
extend OwnMethods
end
module Variation
extend Helper::OwnMethods
:あなたが派生物を作成するかもしれないというチャンスが(別のオブジェクトが同じメソッドを継承)がある場合、少し書くことが容易であるとして、あなたは、クラスを使用する必要があります
しかし、名前空間だけでは、クラスを介してモジュールを使用するのが一般的です。クラスはインスタンス化が行われることを意味します。
モジュールとクラスの違いは、モジュールではなくクラスのインスタンスを作成できることです。ヘルパー(h = Helper.new)のインスタンスを作成する必要がある場合は、クラスでなければなりません。そうでない場合は、おそらくモジュールを残すことが最善です。あなたのコードの残りの部分が質問にどのように関係しているかわかりません。モジュールまたはクラスにクラスメソッドがあるかどうかは、そのオブジェクトのインスタンスを作成する必要があるかどうかには関係ありません。
これらのうちの1つにもう1つの余分な文字がありますか? :)「違いはありますか?」とはどういう意味ですか? 1つはクラスであり、1つはモジュールであり、どちらもeigenclassに入っています。 – Phrogz
私はあなたがいつ他のものを使うのか、尋ねることを意味すると思います。それを反映させるために質問を編集しました。 –