:私はこの1つを合計するかどうかはわかりません...ルビーラメタイトルのために申し訳ありませんが、パターンの質問
(あなたが好きな場合や数式)私は式ですクラスのセットを持っており、他のセットそれらを利用するクラス(外部クラスと呼ぶ)のクラス
数式クラスには多くの属性(約20など)とcalculate関数があります。外部クラスは永続クラスであるため、数式クラスのすべての属性を持ち、独自の属性をいくつか持ちます。
私のシステムでは、ユーザーはどのフォーミュラクラスを使用するかを設定できます。たとえば、比較レポートに複数の式を使用して計算することもできます。
inner.x = outer.x
コードの行の後に、inner/formulaクラスとouter/persistenceクラスの間で属性値をどのように転送できるかを検討しています。
私が使用できないように私には思える:
class Outer
include Formula1
end
を...私は、実際の式のクラスが設定できるようにしたいので。心にスプリング
ひとつのアイデアは、私はこのように私の外側のクラスから伝承する属性の配列、およびループそれらを超えるとsend
、何かを持っている可能性がある。
# not tested
['x', 'y', 'z'].each{|a|@formula.send("#{a.to_sym}=", self.send("#{a.to_sym}") }
その他のルビーの魔法またはパターン私は検討すべきだろうか?
おかげで、
私は、Outerから@formulaに属性がありますが、多くのものがありますが、すべての手動の通過を避けようとしています。 – Rob
@Robこれを動的に処理するための答えにいくつかのコードを追加しました。 – iain
ああmethod_missing ...ニース! – Rob