对于一些作业,我们必须设计一个示例(带有类),其中策略和模板方法设计模式结合在一起,相互补充,从而使它们更加可定制。或者如它所说的“使用模板方法提供更多的可定制性来处理各种策略”。
经过大量阅读和最初的困惑,我想出了将两种动物作为类的想法,Dog
并Snake
让它们都使用接口来实现特定的功能,移动(所以狗可能会走路而蛇会滑行)。我认为这是策略模式部分,因为他们每个人都分别实现自己的移动功能。
为了将模板方法模式纳入其中,我想我会这样做,以便将它实现的类进一步子类化以实现可定制性,这似乎与问题相符。所以我想我会Mover
作为班级并将其细分为Walk
and Slither
。但这让我感到困惑,因为每只动物都会实现超类Mover
还是子类之一?超类是抽象的,而子类是接口吗?还是它们都是接口?
我的例子有意义吗?