我试图找出用面向对象设计原则封装以下场景的最佳方法。哪种类型的设计模式最适合?
我在下面添加了非常基本的类定义,基本上一个人有一个计划和一张信用卡。当一个人更改他们的计划时,我们希望向他们收取差额(如果计划的成本更高)并创建一个事件
我可以在回调或观察者中执行此操作,检查Plan
for 是否发生了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