0
我想找出用面向對象的設計原則來封裝以下場景的最佳方法。什麼類型的設計模式最適合?面向對象的模型屬性事件的設計模式
我在下面添加了非常基本的類定義,基本上一個人有一個計劃和一張信用卡。當一個人改變了他們的計劃,我們希望賬單它們的差值(如果計劃的成本爲更多),並創建一個事件
我可以這樣做是回調或觀察員,檢查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
謝謝Arun!我想到了一個策略,但我不太關心*如果*我們的賬單,而不是如何傳遞信息的行爲。當Person變更時,需要通知CreditCard和Event,但這兩個通知都不適用於Person域。 –
@GregJ好點。所以,手中有兩個問題。您可以隨時將策略用於計算目的,並且像您在問題中提到的那樣,使用Observer進行發佈/訂閱問題。 –
謝謝Arun,我覺得Observer可能是要走的路。 –