【转】策略模式与命令模式区别

策略模式 把易于变化的行为分别封装起来,让它们之间可以互相替换, 让这些行为的变化独立于拥有这些行为的客户。
GoF《设计模式》中说道:定义一系列算法,把它们一个个封装起来,并且使它们可以相互替换。该模式使得算法可独立于它们的客户变化。

Command命令模式是一种对象行为型模式,它主要解决的问题是:在软件构建过程中,“行为请求者”与“行为实现者”通常呈现一种“紧耦合”的问题。
GoF《设计模式》中说道:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。

从这点看:

策略模式是通过不同的算法做同一件事情:例如排序

而命令模式则是通过不同的命令做不同的事情,常含有(关联)接收者。

目标不同!

命令模式是含有不同的命令(含有接收者的请求):做不同的事情;隐藏接收者执行细节。常见菜单事件,

而策略模式含有不同的算法,做相同的事情;

区别在于是否含有接收者。命令模式含有,策略模式不含有。命令模式中的命令可以单独运行。

打个比喻就是:

命令模式等于菜单中的复制,移动,压缩等,而策略模式是其中一个菜单的例如复制到不同算法实现。

原文地址:https://www.cnblogs.com/cg88/p/9480143.html

时间: 2024-10-06 00:39:58

【转】策略模式与命令模式区别的相关文章

策略模式Vs命令模式

阅读本篇文章前,你需要对策略模式和命令模式有一定的了解. 策略模式:主要用于封装算法,封装起来的好处就是可是随意替换算法. 命令模式:请求者给一个具体的命令,然后命令到底怎么执行的,执行的流程如何,他无需关心.例如,给我上一盘菜.它只是下了一个命令,然后服务员(接受请求)去叫厨房的师傅炒菜(执行者).整个执行过程,请求者不需要关心,它只需要给出一条命令,自然有人会帮忙处理他的这条指令. 下面我们结合类图分析一下策略模式: 策略模式Vs命令模式

IOS设计模式之四(备忘录模式,命令模式)

本文原文请见:http://www.raywenderlich.com/46988/ios-design-patterns. 由 @krq_tiger(http://weibo.com/xmuzyq)翻译,如果你发现有什么错误,请与我联系谢谢. 备忘录(Memento)模式 备忘录模式快照对象的内部状态并将其保存到外部.换句话说,它将状态保存到某处,过会你可以不破坏封装的情况下恢复对象的状态,也就是说原来对象中的私有数据仍然是私有的. 如何使用备忘录模式 在ViewController.m中增加

(15):(行为型模式) Command 命令模式

(15):(行为型模式) Command 命令模式

进入编辑模式 vim命令模式 vim实践

进入编辑模式编辑模式,就是我们可以进行修改文档,配置的模式i 在当前字符前插入I(大写) 在光标所在行行首插入a 在当前字符后面插入A(大写) 在所在行行尾插入o 在当前行下面另起一行插入O(大写) 在当前行上面另起一行插入 ·····vim命令模式查找:/加你要查找的字符:·替换:(:1,21s/yang/huang/g)意思为在1-21行里将yang替换为huang(不加g只会替换一行中出现的第一个)·不加g的样子·(:1,$s/yang/huang/g)意思为1-最后一行里将yang替换为

vim进入编辑模式 , vim命令模式 ,vim实践

vim 的三种常用模式 一般模式 移动光标位置 删除,复制,粘贴 进入编辑模式 "i" 当前字符前插入 "I" 在光标所在行的行首插入 "a" 在当前字符后插入 "A" 在光标所在行尾插入 "o" 在当前行的下一行插入新的一行 "O" 在当前行的上一行插入新的一行 "Esc键" 退出编辑模式 进入命令模式 退出编辑模式后按":"或者"/&

Java进阶篇设计模式之八 ----- 责任链模式和命令模式

前言 在上一篇中我们学习了结构型模式的享元模式和代理模式.本篇则来学习下行为型模式的两个模式, 责任链模式(Chain of Responsibility Pattern)和命令模式(Command Pattern). 责任链模式 简介 责任链模式顾名思义,就是为请求创建了一个接收者对象的链.这种模式给予请求的类型,对请求的发送者和接收者进行解耦.这种类型的设计模式属于行为型模式.在这种模式中,通常每个接收者都包含对另一个接收者的引用.如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接

Java设计模式之八 ----- 责任链模式和命令模式

前言 在上一篇中我们学习了结构型模式的享元模式和代理模式.本篇则来学习下行为型模式的两个模式, 责任链模式(Chain of Responsibility Pattern)和命令模式(Command Pattern). 责任链模式 简介 责任链模式顾名思义,就是为请求创建了一个接收者对象的链.这种模式给予请求的类型,对请求的发送者和接收者进行解耦.这种类型的设计模式属于行为型模式.在这种模式中,通常每个接收者都包含对另一个接收者的引用.如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接

17行为型模式之命令模式

概念 Command模式也叫命令模式 ,是行为设计模式的一种.Command模式通过被称为Command的类封装了对目标对象的调用行为以及调用参数. 在面向对象的程序设计中,一个对象调用另一个对象,一般情况下的调用过程是:创建目标对象实例:设置调用参数:调用目标对象的方法. 但在有些情况下有必要使用一个专门的类对这种调用过程加以封装,我们把这种专门的类称作command类. 整个调用过程比较繁杂,或者存在多处这种调用.这时,使用Command类对该调用加以封装,便于功能的再利用.- 调用前后需要

行为型模式:命令模式

LieBrother原文: 行为型模式:命令模式 十一大行为型模式之三:命令模式. 简介 姓名 :命令模式 英文名 :Command Pattern 价值观 :军令如山 个人介绍 : Encapsulate a request as an object,thereby letting you parameterize clients with different requests,queue or log requests,and support undoable operations. 将一个