コマンドモード初心者デザインパターン

コマンドモードコードの例

1つの#include <iostreamの>
 2  使用して 名前空間STD;
 3。 クラスTEAM1
 4。 {
 5。 公共6      ボイドDoSomeing()
 。7      {
 8          COUT << " 何かを" << ENDL;
 9      }
 10  };
 11  
12である クラスTeam2
 13です {
 14  公共15      無効DoSomeing()
 16      {
 17          coutの<< 何かをします" << ENDL;
 18      }
 19  };
 20  
21  クラスteam3
 22  {
 23  公共24      ボイドDoSomeing()
 25      {
 26          COUT << " 做一些事情" << ENDL;
 27      }
 28  };
 29  
30  クラスコマンド
 31  {
 32  保護33      team1 m_team1;
 34      team2 m_team2;
 35      team3のm_team3;
 36 公共37      仮想 ボイドのexec()
 38      {}。
39  
40  }。
41  
42  クラス ConcreteCommand1:パブリックコマンド
 43  {
 44  公共45      ボイドのexec()
 46      {
 47          m_team1.DoSomeing()。
48      }。
49  
50  }。
51  クラスインボーカ
 52  {
 53  プライベート54      コマンド* m_CommandPtr。
55  公衆56      ボイド AddCommand(コマンド* m_commandPtr)
 57      {
 58          m_CommandPtr = m_commandPtr。
59      }。
60      ボイドアクション()
 61      {
 62          m_CommandPtr-> のexec();
63      }。
64  
65  }。
66  
67  
68  のint main()の
 69  {
 70      ConcreteCommand1 m_ConcreteCommand1。
71      インボーカm_Invoker。
72      m_Invoker.AddCommand(&m_ConcreteCommand1)。
73     m_Invoker.Action();
74      GETCHAR()。
75      リターン 0 ;
76  
77 }

 

おすすめ

転載: www.cnblogs.com/wuhongjian/p/11823904.html