设计模式之 Chain of Responsibility 模式

    技术2022-05-11  97

     

    /******************************************************************************** * File Name     :  Handler.h * * EMail Addr    :  seakingw@163.com * * Description : interface for the CHandler class. * ********************************************************************************/ #ifndef _CHIANOFRESPONSBILITY #define _CHIANOFRESPONSBILITY class CHandler { public:  virtual ~CHandler();  virtual void HandleRequest(UINT nRequestID = 0);  void   SetSuccessor(CHandler *pSucc);  CHandler  *GetSuccessor(); protected:  CHandler();  CHandler(CHandler *pSucc); private:  CHandler *m_pSucc; }; #endif   /******************************************************************************** * File Name     :  Handler.cpp * * EMail Addr    :  seakingw@163.com * * * Description : implementation of the CHandler class. * ********************************************************************************/ #include "Handler.h" CHandler::CHandler() {  m_pSucc = NULL; } CHandler::CHandler(CHandler *pSucc) {  m_pSucc = pSucc; } CHandler::~CHandler() {  if(m_pSucc)   m_pSucc = NULL; } void CHandler ::SetSuccessor(CHandler *pSucc) {  m_pSucc = pSucc; } CHandler* CHandler::GetSuccessor() {  return m_pSucc; } void CHandler::HandleRequest(UINT nRequestID) {  if(m_pSucc != NULL)   m_pSucc->HandleRequest(nRequestID); }  

    最新回复(0)