コマンドモードコードの例
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 }