您的位置:首页 > 其它

设计模式之命令模式[自我理解]

2012-12-11 10:34 197 查看
interface ICommand

{

virtual void Execute() = 0;

};

class ConcreteCmd : public ICommand

{

Worker m_impl;

ConcreteCmd(Implement *pImpl):m_impl(pImpl){}

void Excute()

{

m_impl->DoWork();

}

};

class Caller

{

ICommand m_pCmd;

void AddCmd(ICommand* pCmd){ m_pCmd = pCmd;}

void Action(){ m_pCmd->Execute();}

}

class Client

{

ConcreteCmd *m_pCmd;

Client(Worker impl){ m_pCmd = new ConcreteCmd(impl); }

ICommand GetCmd(){ return m_pCmd;}

SetCmd(ConcreteCmd* pCmd){ m_pCmd = pCmd; }

}

void main()

{

Client client = new Client(new Worker);

Caller caller = new Caller();

caller.add(client.GetCmd());

caller.Action():

}

要点:核心是Caller和ICommand,他们实现了任务和实现的分离,Client是辅助,实现接口实现的可适配

看设计模式不能抠字眼,一眼飘过,理解它的抽象和复用机制就行
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: