Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1151088
  • 博文数量: 177
  • 博客积分: 761
  • 博客等级: 上士
  • 技术积分: 1518
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-04 22:37
文章分类

全部博文(177)

文章存档

2017年(1)

2016年(3)

2015年(33)

2014年(48)

2013年(60)

2012年(32)

分类: C/C++

2012-11-26 16:47:07

     话说在代理模式下,在王婆的邪恶帮助下,潘金莲与西门庆已经取得了初步的认识,通过代理(媒婆王婆)西门庆初步取得了成功,已近开始接近潘金莲骚妇。可是要想进一步发展关系可不能光天华日之下来来往往,于是乎通过王婆此媒人将他们之间的联络暗号初步定好了。
1.在武大郎生气的时候,潘金莲就会在门口挂五角星提示西门庆,武大郎生气!(至于是什么原因就不说了,如武大郎今天烧饼没赚钱,还被打了一顿,或武大郎出门被天上鸟拉屎)
2.武大郎高兴的时候,潘金莲在门口挂三角符号,提示西门庆武大郎很高兴,我们三更七里桥约会,(今天赚钱了,多喝了几杯醉意十足早早入睡)
3。武大郎病重 ,潘金莲在门口挂十字架提示西门庆,来我家约会更刺激。(武大郎经常早出晚归,风催日晒,得了重感冒,古人云风寒)
xxxx等等武大郎的状态,根据武大郎的状态潘金莲就有相应的策略来应对,以保全他们之间鱼水之欢。

定义一个策略接口
class strategy{
public:
strategy(void){};//do nothing
~strategy(void){};//do nothing
virtual void sense(void)=0;//understand by insight

};

定义应对武大郎状态的策略方法集
class context{
public:
context(strategy* pstrategy);
~context(void);
void sense(void);
private:
strategy* m_pstrategy;

};

武大郎生病策略
class shengbin:public strategy{
public :
shengbin(void);
~shengbin(void);
void sense(void);
};

点击(此处)折叠或打开

  1. #include "shengbin.h"

  2. #include <iostream>
  3. using namespace std;

  4. shengbin::shengbin(void){
  5.     //do nothing

  6. }

  7. shengbin::~shengbin(void){
  8.     //do nothing

  9. }

  10. void shengbin::sense(void){

  11.     cout<<"潘金莲:门口挂十字架符号,提示西门庆,武大郎身体病重虚弱,三更来我家幽会"<<endl;

  12. }

武大郎高兴策略
class gaoxing:public strategy{
public:
gaoxing(void);
~gaoxing(void);
void sense(void);
};

点击(此处)折叠或打开

  1. #include "gaoxing.h"
  2. #include <iostream>
  3. using namespace std;

  4. gaoxing::gaoxing(void){
  5.     //do nothing

  6. }

  7. gaoxing::~gaoxing(void){
  8.     //do nothing

  9. }

  10. void gaoxing::sense(void){

  11.     cout<<"潘金莲:门口挂三角符号,提示西门庆,我灌醉他后,三更七里桥幽会"<<endl;

  12. }

武大郎生气策略
class shengqi:public strategy{
public:
shengqi(void);//生气
~shengqi(void);
void sense(void);
};

点击(此处)折叠或打开

  1. #include "shengqi.h"
  2. #include <iostream>
  3. using namespace std;

  4. shengqi::shengqi(void){
  5.     //do nothing
  6. }
  7. shengqi::~shengqi(void){
  8.     //do nothing
  9. }

  10. void shengqi::sense(void){
  11.     cout<<"潘金莲:门口挂五角星,提示西门庆 武大郎生气,他失眠!今晚幽会取消!"<<endl;
  12. }

以上代码在linux测试通过
[root@localhost Debug]# ./strategy 
 策略模式演示程序 
潘金莲:门口挂三角符号,提示西门庆,我灌醉他后,三更七里桥幽会
潘金莲:门口挂五角星,提示西门庆 武大郎生气,他失眠!今晚幽会取消!
潘金莲:门口挂十字架符号,提示西门庆,武大郎身体病重虚弱,三更来我家幽会
[root@localhost Debug]# 





阅读(2106) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

lubing5212012-11-26 17:10:17

#include "strategy.h"
#include "context.h"
#include "shengqi.h"
#include "gaoxing.h"
#include "shengbin.h"

#include <iostream>
using namespace std;

int main(int argc,char *argv[]){

        context *pcontext;
        cout<<" 策略模式演示程序 "<<endl;
        pcontext=new conte