为什么战略模式使用工具而不是扩展?

时间:2012-10-23 09:00:26

标签: java design-patterns

为什么策略模式使用implements而不是extends?因为我会假设StrategyA is-a策略库,它宁愿引导我扩展基本策略,而不是将其作为接口实现。

那么,将策略模式应用于“extends”会不会错?如果我在界面中使用它有什么好处?

2 个答案:

答案 0 :(得分:2)

如果您没有公共代码放入您的策略基类型,那么您通过使用抽象类而不是接口来实现任何目标,除了限制此类API的客户端使用策略的专用类,其中可能希望单个类实现多个接口。

答案 1 :(得分:1)

根据我的信息:使用extends,您将无法扩展任何其他类。 如果不是定义,则为什么不使用interface