Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oop 我使用策略设计模式和模板方法设计模式的例子有意义吗?_Oop_Design Patterns_Inheritance_Strategy Pattern_Template Method Pattern - Fatal编程技术网

Oop 我使用策略设计模式和模板方法设计模式的例子有意义吗?

Oop 我使用策略设计模式和模板方法设计模式的例子有意义吗?,oop,design-patterns,inheritance,strategy-pattern,template-method-pattern,Oop,Design Patterns,Inheritance,Strategy Pattern,Template Method Pattern,对于一些家庭作业,我们必须设计一个示例(带有类),其中策略和模板方法设计模式结合在一起,相互补充,从而使它们更加可定制。或者“使用模板方法提供更多的可定制性来处理各种策略”,正如它所说 经过大量阅读和最初的困惑,我想到了将两种动物作为类的想法,Dog和Snake,并让它们都使用接口来实现特定的功能,移动(这样狗可以行走,蛇可以滑行)。我认为这是策略模式的一部分,因为它们各自单独实现自己的移动功能 为了将模板方法模式合并到这个中,我想我应该这样做,这样它实现的类就可以进一步子类化,以实现可定制性,

对于一些家庭作业,我们必须设计一个示例(带有类),其中策略和模板方法设计模式结合在一起,相互补充,从而使它们更加可定制。或者“使用模板方法提供更多的可定制性来处理各种策略”,正如它所说

经过大量阅读和最初的困惑,我想到了将两种动物作为类的想法,
Dog
Snake
,并让它们都使用接口来实现特定的功能,移动(这样狗可以行走,蛇可以滑行)。我认为这是策略模式的一部分,因为它们各自单独实现自己的移动功能

为了将模板方法模式合并到这个中,我想我应该这样做,这样它实现的类就可以进一步子类化,以实现可定制性,这似乎与问题相符合。所以我想我应该使用
Mover
作为类,并将其子类化为
Walk
Slither
。但这让我很困惑,因为每个动物都会实现超类
Mover
,还是其中的一个子类?超类是抽象的,而子类是接口?或者它们都是接口


我的例子有意义吗?

没有。主要原因是,当您需要使用不同的方法来做同一件事时,策略适用,例如布局管理器。在你的例子中,蛇有一种移动的方式,狗也是

坦率地说,我不认为这些模式配合得这么好,我不确定作业的目的是什么。当事情以特定的方式完成时,模板方法是很好的,而变体只是以不同的方式实现过程的步骤


也许你应该考虑一个过程,其中一个步骤可以插入一个策略。

否。主要原因是,当你需要用不同的方法来做同一件事时,策略适用,例如布局管理器。在你的例子中,蛇有一种移动的方式,狗也是

坦率地说,我不认为这些模式配合得这么好,我不确定作业的目的是什么。当事情以特定的方式完成时,模板方法是很好的,而变体只是以不同的方式实现过程的步骤


也许你应该考虑一个过程,其中一个步骤可以插入一个策略。

否。主要原因是,当你需要用不同的方法来做同一件事时,策略适用,例如布局管理器。在你的例子中,蛇有一种移动的方式,狗也是

坦率地说,我不认为这些模式配合得这么好,我不确定作业的目的是什么。当事情以特定的方式完成时,模板方法是很好的,而变体只是以不同的方式实现过程的步骤


也许你应该考虑一个过程,其中一个步骤可以插入一个策略。

否。主要原因是,当你需要用不同的方法来做同一件事时,策略适用,例如布局管理器。在你的例子中,蛇有一种移动的方式,狗也是

坦率地说,我不认为这些模式配合得这么好,我不确定作业的目的是什么。当事情以特定的方式完成时,模板方法是很好的,而变体只是以不同的方式实现过程的步骤


也许您应该考虑一个过程,其中一个步骤可以插入一个策略。

据我了解,您的示例不适合策略和模板,场景最适合抽象工厂,可能是原型(取决于完整需求)。 策略和模板之间的基本区别是继承v/s委托


如果您正在搜索策略和模板示例,我建议您使用一些游戏应用程序,其中完整的游戏可以放入模板功能中,如游戏结束、游戏开始、游戏赢家、游戏失败者以及游戏规则可以放入策略中,如何时移动、如何使用某些移动

据我了解,您的示例不适合策略和模板,场景最适合抽象工厂,可能是原型(取决于完整需求)。 策略和模板之间的基本区别是继承v/s委托


如果您正在搜索策略和模板示例,我建议您使用一些游戏应用程序,其中完整的游戏可以放入模板功能中,如游戏结束、游戏开始、游戏赢家、游戏失败者以及游戏规则可以放入策略中,如何时移动、如何使用某些移动

据我了解,您的示例不适合策略和模板,场景最适合抽象工厂,可能是原型(取决于完整需求)。 策略和模板之间的基本区别是继承v/s委托


如果您正在搜索策略和模板示例,我建议您使用一些游戏应用程序,其中完整的游戏可以放入模板功能中,如游戏结束、游戏开始、游戏赢家、游戏失败者以及游戏规则可以放入策略中,如何时移动、如何使用某些移动

据我了解,您的示例不适合策略和模板,场景最适合抽象工厂,可能是原型(取决于完整需求)。 策略和模板之间的基本区别是继承v/s委托

如果您正在搜索策略和模板示例,我建议您使用一些游戏应用程序,其中完整的游戏可以放入模板功能中,如游戏结束、游戏开始、游戏赢家、游戏失败者以及游戏规则可以放入策略中,如何时移动、如何使用某些移动