2012-10-23 125 views
0

爲什麼策略模式使用implements而不是extends?因爲我會假設StrategyBase,這比起實現它作爲一個接口更傾向於擴展基本策略。爲什麼策略模式使用實現而不是擴展?

因此,將策略模式與「擴展」一起應用會是錯誤的嗎?如果我在界面中使用它有什麼好處?

+4

因爲你不需要實現繼承嗎? '工具'也聲明「是 - 一種」關係 –

回答

2

如果您沒有公共代碼投入您的戰略基礎類型,那麼通過使用抽象類而不是接口,除了將此類API的客戶端限制爲使用策略的專用類,他們可能會希望單個類實現多個接口。

+0

非常同意。 Interface和Class都表示一個類型,而策略將有一個共同的類型。唯一的區別是您是否想要爲該類型添加一些常見功能或行爲,但這是實施決策。 –

1

根據我的信息:使用extends,你將無法擴展任何其他類。 如果沒有定義,方法爲什麼不使用interface需要定義。

相關問題