0

私は、オブジェクト指向設計の原則を使用して次のシナリオをカプセル化するための最良の方法を見つけようとしています。どのタイプのデザインパターンが最適ですか?

以下に非常に基本的なクラス定義を追加しました。基本的に、人はプランとクレジットカードを持っています。人がプランを変更した場合、差額を請求し(プランのコストが多かった場合)、イベントを作成します

コールバックまたはオブザーバーでこれを行うことができ、それが変更されたかどうかを確認しますPlanPerson、クロスモデルの動作が多い大規模なシステムでは、これは管理できなくなり、状態に影響を与える無関係なコールバックがたくさんあるため、テストが困難になります。

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 に答える