• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
lizhengjin
博客园    首页    新随笔    联系   管理    订阅  订阅
职责链模式

#include "iostream.h"

class CHandle
{
public:
 CHandle(){}
 virtual ~CHandle(){}
public:
 virtual void SetHandle(CHandle *handle){};
 virtual void ProcessHandle(int a){} ;
public:
  CHandle *m_hand;
};

class CHandle1 : public CHandle
{
public:
 CHandle1(){}
  ~CHandle1(){}
public:
 void SetHandle(CHandle *handle){m_hand = handle;}
 void ProcessHandle(int a)
 {
  if (a >= 0  )
  {
   cout<<a<<endl;
  }
  else
  {
   m_hand->ProcessHandle(a);
  }
 }
 
 
};

class CHandle2 : public CHandle
{
public:
 CHandle2(){}
  ~CHandle2(){}
public:
 void SetHandle(CHandle *handle){m_hand = handle;}
 void ProcessHandle(int a)
 {
  if (a >= 10 )
  {
   cout<<a<<endl;
  }
  else
  {
   m_hand->ProcessHandle(a);
  }
 }
 
 
};

void main()
{
  CHandle1 *ha1 = new CHandle1();
  CHandle2 *ha2 = new CHandle2();
  ha1->SetHandle(ha2);

  ha1->ProcessHandle(10);
}

 

 

 

posted on 2008-09-03 15:09  lizhengjin  阅读(180)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3