私はコードの匂いかもしれないと思うこの問題を抱えています。私はその初期設定で引数を受け取り、1つの公開といくつかのプライベートメソッドを含むクラスを持っています。例:Rubyクラス、メソッドの前後で引数が渡される、インスタンス変数?
class Foo
def initialize(a)
@a = a
end
def apply?(examples)
foo_1(examples)
end
private
def foo_1(examples)
foo_2(examples) ? 1 : 2
end
def foo_2(examples)
examples.size > @a
end
end
ここに私の問題は、パブリックメソッドが周りを超えるとプライベートメソッドを介して実行されることによって受信された「例」であり、何、それはかなり見ていないと、それはコードのにおいのように思えますここに最善のアプローチ?パブリックメソッド内のインスタンス変数にしますか?
おかげ
クエリオブジェクトは「Tell Do not Ask」に違反し、戻り値の型は「Duck Typing」を使用していないことを示します。私は、純粋なオブジェクト指向の実装について、今後のトラブルを避けるために再考することを提案します。 –
実際の要件に関する情報があまりにも少なく、実際の使用例はありません。通常、その欠如は建設的な議論のためには問題ないかもしれませんが、これは良いデザインパターンに関するものなので、もっと多くの情報が本当に必要です。それ以外の場合は、イニシャライザにサンプルを追加し、すべてのクエリのクラスをインスタンス化することは合理的な解決策になるかもしれません。 – mdrozdziel