2つの質問があります
ベストプラクティス
- 公開インターフェースを使用してデータ構造に対して何らかの操作を実行するアルゴリズムがあります
- 現在、多数の静的メソッドを持つモジュールであり、1つのパブリックインターフェイスメソッドを除いてすべてプライベートです。
- すべてのメソッド間で共有する必要があるインスタンス変数が1つあります。
これらは私が見ることができるオプションです、どれが最高ですか?:
- モジュールの静的(ルビーで「モジュール」)を持つメソッド
- 静的メソッドを持つクラス
- データ構造に含めるMixinモジュール
- そのデータ構造(非常に小さい)を変更するアルゴリズムの部分をリファクタリングし、アルゴリズムモジュールの静的メソッドを呼び出すミックスインを作成します。
テクニカルパーツ
プライベートModuleメソッドを作成する方法はありますか?
module Thing
def self.pub; puts "Public method"; end
private
def self.priv; puts "Private method"; end
end
private
そこには何ら影響を与えていないようです私はまだ呼び出すことができ、Thing.priv
問題なく。
private
インスタンスメソッドにのみ影響し、クラスメソッドには影響しません。private_class_method
代わりに使用:module Thing; def self.pub; end; private_class_method :pub; end