私は、オブジェクト指向設計の原則を使用して次のシナリオをカプセル化するための最良の方法を見つけようとしています。どのタイプのデザインパターンが最適ですか?
以下に非常に基本的なクラス定義を追加しました。基本的に、人はプランとクレジットカードを持っています。人がプランを変更した場合、差額を請求し(プランのコストが多かった場合)、イベントを作成します
コールバックまたはオブザーバーでこれを行うことができ、それが変更されたかどうかを確認しますPlan
がPerson
、クロスモデルの動作が多い大規模なシステムでは、これは管理できなくなり、状態に影響を与える無関係なコールバックがたくさんあるため、テストが困難になります。
class Person
has_one :plan
has_one :credit_card
has_many :events
end
class Plan
attr_accessible :cost
end
class CreditCard
def charge_card(amount)
...
end
end
class Event
attr_accessible :message
end