食べ物を作るためにウェイター(特定のコマンド)(コマンド受信機)でシェフを通知するために、お客様(コマンド送信者)
パッケージbehavioral.command; パブリック クラスカスタマー{ コマンドコマンド; 公共お客様(コマンドコマンド){ この .command = コマンド; } パブリック 無効eatCommand2Waiter(){ System.out.printlnは(「お客様:ウェイター、磐私が食べたいです」) ; 文字列食品 = command.excute(); System.out.printlnは(食品); System.out.printlnは( "お客様:食べ始めます" ); } }
パッケージbehavioral.command、 パブリック インターフェースはコマンド{ 公共、文字列()excute } パッケージbehavioral.command、 パブリック クラスはウェイター実装コマンド{ プライベートクッククック、 ウェイター(){ クック = 新しい新しいクック(); } @Override パブリック(文字列excute)を{ System.out.printlnは( "ウェイター:顧客が注文し、それを行うことを始める" ); String型の食品 = cook.mark(); System.out.printlnは(食品); リターン「ウェイター:あなたの料理のためのゲストは、良いです" ; } }
以下のためのパッケージ変更behavioral.command; パブリック クラスクック{ 公共の文字列のMark(){ System.out.printlnは(「クック:私は始めは」); 戻り値「クック:良い食べ物、それを提供します」; } }
パッケージbehavioral.command。 パブリック クラスCookMain { 公共 静的 ボイドメイン(文字列[]引数){ コマンドウェイター = 新しいウェイター()。 顧客C = 新しい顧客(ウェイター)。 c.eatCommand2Waiter(); } }