0

我试图找出用面向对象设计原则封装以下场景的最佳方法。哪种类型的设计模式最适合?

我在下面添加了非常基本的类定义,基本上一个人有一个计划和一张信用卡。当一个人更改他们的计划时,我们希望向他们收取差额(如果计划的成本更高)并创建一个事件

可以在回调或观察者中执行此操作,检查Planfor 是否发生了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
4

1 回答 1

0

如果我理解正确,您的信用卡就是您的条件,您的帐单会因此而有所不同。恕我直言,策略模式可能是适合的模式。

用策略替换条件

于 2012-10-30T16:32:29.283 回答