代理模式和命令模式的区别

news/2024/11/25 23:45:52/

在初学设计模式的时候,对于代理模式(委托)和命令模式总是分不清楚容易混淆,经过一段时间的实际使用后,简单的对它们进行鉴别,以chromium为例:

代理模式:

在Chromium项目中有个DownloadManager类,它负责完成任务的下载功能,如下:

class DownloadManager{
public:// 开发者可基于DownloadManagerDelegate派生出新的委托类,并通过该函数进行注册。virtual void SetDelegate(DownloadManagerDelegate* delegate);// 如果获取Delegate类为Null的话,表明下载模块未启用。virtual DownloadManagerDelegate* GetDelegate() const;// 具体的工作由delegate_完成virtual void ChooseSavePath(…){delegate_->ChooseSavePath(…);}// 具体的工作由delegate_完成virtual void Shutdown(…){delegate_->(Shutdown(…);}
private:DownloadManagerDelegate  *delegate_;
};
Class DownloadManagerDelegate{//弹出对话框,让用户选择保存路径。void ChooseSavePath(…);void Shutdown(…);……
};

命令模式:

最典型的莫过于线程模型中关于Task的用法,这是为大家所熟悉的一个任务类:

class Task : public tracked_objects::Tracked {
public:virtual ~Task();// Tasks are automatically deleted after Run is called.virtual void Run() = 0;
};
void MessageLoop::RunTask(const Task& task_) {……task_->Run();……
}
MessageLoop会从它的消息队列中取出Task实例,然后调用其Run方法来实现线程间的任务传递和调用。

我的理解:

1、在代理(委托)模式中,调用者就是委托者,执行者就是被委托者,委托者和被委托者接口定义是相同的;在命令模式中,调用者不关注执行者的接口定义是否和它一致。

2、在调用时机上,代理模式的具体执行是只能在特定的调用者内部执行(接口相同);命令模式的具体执行可以在任何调用者内部执行(接口不相同也可以)。


http://www.ppmy.cn/news/495109.html

相关文章

苹果6sp怎么录屏_涨知识了!原来苹果手机还自带录屏功能,不用有些浪费了

涨知识了!原来苹果手机还自带录屏功能,不用有些浪费了 如今手机发展的是越来越智能化,功能也越来越多,还有不少黑科技的出现,方便我们的生活,录屏功能就是其中之一。 这个录屏功能的用处有很多,…

小马哥---高仿苹果6sp 主板型号z18机型 6582刷机拆机主板图与开机界面图

高仿苹果的版本较多 A系列 R系列 LT系列 Q系列 TD系列 S系列 等等机型版本 刷机建议要拆机看主板型号来救砖 LT系列的有LT6082 LT6000V LT6000D LT6071 等系列版本 注意鉴别 有日期版本分别。拆机看主板标示贴为重 A系列的有A175 A171 A192 A193 …

小马哥---高仿苹果6sp 主板型号M818 6571芯片 各日期版本刷机拆机图示

高仿苹果6sp主板型号m818 芯片6571 字库emmc芯片 M718 m818都是一个厂家的机型 芯片都采用6571芯片 区别字库芯片型号不同 M818日期版本较多 具体看主板标示贴 上图

小马哥--高仿苹果6sp-主板型号Q39hd-m1刷机拆机图与开机界面图

高仿苹果的版本较多 A系列 R系列 LT系列 Q系列 TD系列 S系列 等等机型版本 刷机建议要拆机看主板型号来救砖 LT系列的有LT6082 LT6000V LT6000D LT6071 等系列版本 注意鉴别 有日期版本分别。拆机看主板标示贴为重 A系列的有A175 A171 A192 A193 …

小马哥---高仿苹果6sp 型号Q65 芯片6582 2016新版刷机拆机主板图与开机界面图

高仿苹果Q系列的版本较多 分日期版本 刷机看主板标贴为准 有Q33 Q32 Q36 Q37 Q39 Q65 等等标贴 区分日期版本与hd qhd屏幕分别 主板外观无大差别 系统有区分 此次展示的为Q65 6sp 2016的机型 上图

小马哥---高仿苹果6sp 主板型号W9200 V3.0新版机型刷机拆机图

W9200这款机型分新旧版本分别 一般7月前与7月后的屏幕硬件有更换 新版本一般都向下兼容旧版机型 上图

小马哥----高仿苹果6sp(主板型号W9200_WZS_2QG 6582 7月版本刷机拆机主板图与开机识别图

高仿苹果6sp(W9200_WZS_2QG_OLCD_CHN_20160705_V001 此款6582芯片 新版本 2016的新款高仿机 最新的版本截止到目前为止7月5日 上图

机器视觉工程师,有哪些缓解压力的方式,要拥有自己的愉悦自己的方式

机器视觉halcon-胶水缺陷检测 其实人这一生,压力无处不在。面临压力的时候,尝尝伴随着焦虑。 压力指的是什么? 当你认为面对各种困难,超越你自己的能力,你便感到有压力。 压力来源于你自身的想法,所以你自己认为的压力,困难自己无法解决。压力来源于你主观意识,自身判…