当前位置: 首页 > 面试题库 >

策略模式和命令模式之间的区别

孟翰海
2023-03-14
问题内容

策略模式和命令模式有什么区别?我也在寻找Java中的一些示例。


问题答案:

通常,命令模式用于使对象脱离 需要完成的工作
-进行操作及其参数并将其包装在要记录的对象中,以备撤消,发送到远程站点等。随着时间的流逝,它们将往往是大量不同的Command对象,它们会通过系统中的给定点,并且Command对象将包含描述所需操作的各种参数。

另一方面,策略模式用于指定应 该如何做
,并插入到较大的对象或方法中以提供特定的算法。排序策略可能是合并排序,也可能是插入排序,或者可能更复杂,例如如果列表大于某个最小大小,则仅使用合并排序。策略对象很少受到与Command对象有关的大量改组,而是经常用于配置或调整目的。

两种模式都涉及将代码和可能的单个操作参数分解为包含它们的原始类的另一个类,以提供独立的可变性。不同之处在于实践中遇到的用例以及每种模式背后的意图。



 类似资料:
  • 问题内容: 谁能解释工厂模式与策略模式之间的差异? 对我来说,除了一个额外的工厂类(它们以工厂模式创建产品的对象)外,两者看起来都一样 问题答案: 工厂模式是一种创造模式。战略模式是一种运营模式。换句话说,工厂模式用于创建特定类型的对象。策略模式用于以特定方式执行一个操作(或一组操作)。在经典示例中,工厂可能会创建不同类型的动物:狗,猫,老虎,而策略模式将执行特定的动作,例如,移动;使用“跑步”,

  • 介绍 策略模式定义了算法家族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化不会影响到使用算法的客户。 正文 在理解策略模式之前,我们先来一个例子,一般情况下,如果我们要做数据合法性验证,很多时候都是按照swith语句来判断,但是这就带来几个问题,首先如果增加需求的话,我们还要再次修改这段代码以增加逻辑,而且在进行单元测试的时候也会越来越复杂,代码如下: validato

  • 主要内容:介绍,实现,Strategy.java,OperationAdd.java,OperationSubtract.java,OperationMultiply.java,Context.java,StrategyPatternDemo.java在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。 在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 contex

  • 在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。 在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象的执行算法。 介绍 意图:定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。 主要解决:在有多种算法相似的情况下,使用 if...

  • 问题 解决问题的方式有多种,但是你需要在程序运行时选择(或是转换)这些方法。 解决方案 在策略对象(Strategy objects)中封装你的算法。 例如,给定一个未排序的列表,我们可以在不同情况下改变排序算法。 基类 StringSorter = (algorithm) -> sort: (list) -> algorithm list 策略 bubbleSort = (list) -

  • 应用场景 一个商场收银软件,营业员根据客户所购买的商品的单价和数量,向客户收费 用两个文本框来输入单价和数量,一个确定按钮来算出每种商品的费用,用个列表框来记录商品的清单,一个标签来记录总计,一个重置按钮来重新开始。 double total = 0.0d; private void btn0k_Click(object sender, EventArgs e) { double