我需要一些設計幫助。 我有一個班級,我們稱之爲可以實現多種行爲的飛船。 我已經定義了一個接口來聲明每個行爲都支持的操作。 到現在爲止,這是經典的戰略模式。帶上下文的派生算法的策略模式調用方法
但是,實施的策略需要能夠調用上下文類的動作和方法。我一直在考慮將上下文作爲接口本身傳遞給封裝算法。
這是最好的方法嗎?如果不是,你會推薦什麼?使用觀察者模式以及使你的策略不耦合到上下文
我需要一些設計幫助。 我有一個班級,我們稱之爲可以實現多種行爲的飛船。 我已經定義了一個接口來聲明每個行爲都支持的操作。 到現在爲止,這是經典的戰略模式。帶上下文的派生算法的策略模式調用方法
但是,實施的策略需要能夠調用上下文類的動作和方法。我一直在考慮將上下文作爲接口本身傳遞給封裝算法。
這是最好的方法嗎?如果不是,你會推薦什麼?使用觀察者模式以及使你的策略不耦合到上下文
你打算做的事對我來說似乎很好。要考慮的一件事就是不要太多地關注你的行爲類的方法。例如,如果你的飛船有「引擎行爲」,只傳遞你的「油箱」和「驅動單元」,而不是整個飛船。
取決於你的戰略需要的情況下,你可以考慮將它基於事件的。
例如,如果您的策略導致您的上下文中的某些內容發生更改,這些可能是某些中介(或您的上下文本身)訂閱的事件。
我會說這是一個使用依賴注入的好方法。這樣,行爲不需要跟蹤上下文類型,只需確保該上下文類對象上可用的操作/方法。 – ryadavilli
你可以提供關於Context類的更多細節嗎?或者把它包含在SpaceShip Analogy中? –