您的位置:首页 > 理论基础 > 计算机网络

C语言和设计模式(命令模式)【文章都是来自网络,只要自己吸取了就是自己的】

2012-03-05 12:34 661 查看
命令模式的目的主要是为了把命令者和执行者分开。老规矩,举个范例吧。假设李老板是一家公司的头儿,他现在让他的秘书王小姐去送一封信。王小姐当然不会自己亲自把信送到目的地,她会把信交给邮局来完成整个投递的全过程。现在,我们就对投递者、命令、发令者分别作出定义。

首先定义post的相关数据。

[cpp]
view plaincopyprint?

typedef struct _Post
{
void (*do)(struct _Post* pPost);
}Post;

[cpp]
view plaincopyprint?

typedef struct _Command

{
void* pData;

void (*exe)(struct _Command* pCommand);

}Command;

void post_exe(struct _Command* pCommand)

{
assert(NULL != pCommand);

(Post*)(pCommand->pData)->do((Post*)(pCommand->pData));

return;

}

typedef struct _Command
{
void* pData;
void (*exe)(struct _Command* pCommand);

}Command;

void post_exe(struct _Command* pCommand)
{
assert(NULL != pCommand);

(Post*)(pCommand->pData)->do((Post*)(pCommand->pData));
return;
}
我们看到了Post、Command的操作,那么剩下的就是boss的定义了。

[cpp]
view plaincopyprint?

typedef struct _Boss

{
Command* pCommand;
void (*call)(struct _Boss* pBoss);

}Boss;

void boss_call(struct _Boss* pBoss)

{
assert(NULL != pBoss);

pBoss->pCommand->exe(pBoss->pCommand);
return;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐