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
Design patterns 这是战略模式还是指挥模式?_Design Patterns - Fatal编程技术网

Design patterns 这是战略模式还是指挥模式?

Design patterns 这是战略模式还是指挥模式?,design-patterns,Design Patterns,我正在为一个大学项目开发一个计算器应用程序。我将每个计算器操作(如加法、乘法、平方等)封装在单独的类中,这些类都有一个公共的超类。这是命令或战略模式的一个例子,它们似乎非常相似,我不能在这里作出决定 谢谢。两者都有。许多模式重叠。您的计算器程序使用策略模式来允许多个操作,并且可能允许稍后添加或动态添加新操作 每个操作策略都是以符合命令模式的方式调用的。在需要决定使用哪种算法时使用策略模式 e、 g.对于不同类型的数字,您希望如何进行加法 在进行呼叫时将使用命令模式 e、 g.您是否要调用具有不同

我正在为一个大学项目开发一个计算器应用程序。我将每个计算器操作(如加法、乘法、平方等)封装在单独的类中,这些类都有一个公共的超类。这是命令或战略模式的一个例子,它们似乎非常相似,我不能在这里作出决定


谢谢。

两者都有。许多模式重叠。您的计算器程序使用策略模式来允许多个操作,并且可能允许稍后添加或动态添加新操作


每个操作策略都是以符合命令模式的方式调用的。

在需要决定使用哪种算法时使用策略模式 e、 g.对于不同类型的数字,您希望如何进行加法

在进行呼叫时将使用命令模式
e、 g.您是否要调用具有不同添加策略的添加类或其他方法都应该有所帮助。策略是肯定的,因为每个子类的操作都不同。但是,除非一个操作的每个实例都是唯一的,即1+3*4/5+2将是4个对象,否则它可能不是命令。将有某种复合命令用于计算由许多子操作命令组成的整个等式。