package Ġnam . tran Ċ Ċ import Ġnam . tran . adapter . Duck Ċ import Ġnam . tran . adapter . M all ard Duck Ċ import Ġnam . tran . adapter . Tur key Adapter Ċ import Ġnam . tran . adapter . W ild Tur key Ċ import Ġnam . tran . adapter 1 . Translator Adapter Ċ import Ġnam . tran . adapter 1 . V iet name se Ad ap tee Ċ import Ġnam . tran . command .* Ċ import Ġnam . tran . command 1 . Account Ċ import Ġnam . tran . command 1 . Bank Control Ċ import Ġnam . tran . command 1 . Close Account Command Ċ import Ġnam . tran . command 1 . Open Account Command Ċ import Ġnam . tran . command 2 . Document Control Ċ import Ġnam . tran . composite . Menu Ċ import Ġnam . tran . composite . MenuItem Ċ import Ġnam . tran . composite 1 . File Ċ import Ġnam . tran . composite 1 . File Component Ċ import Ġnam . tran . composite 1 . Folder Ċ import Ġnam . tran . decorator . Dark Ro ast Ċ import Ġnam . tran . decorator . Mo cha Ċ import Ġnam . tran . decorator . Wh ip Ċ import Ġnam . tran . facade .* Ċ import Ġnam . tran . facade 1 . Shop Facade Ċ import Ġnam . tran . factory ._ method . Ch icago P izza Store Ċ import Ġnam . tran . factory ._ method . N YP izza Store Ċ import Ġnam . tran . factory 1 ._ abstract . F unit ure Factory Ċ import Ġnam . tran . factory 1 ._ method . Bank Factory Ċ import Ġnam . tran . iterator . C afe Menu Ċ import Ġnam . tran . iterator . D inner Menu Ċ import Ġnam . tran . iterator . P anc ake House Menu Ċ import Ġnam . tran . iterator . Wait ress Ċ import Ġnam . tran . observer . Current Conditions Display Ċ import Ġnam . tran . observer . Forecast Display Ċ import Ġnam . tran . observer . Statistics Display Ċ import Ġnam . tran . observer . Weather Data Ċ import Ġnam . tran . observer 1 .* Ċ import Ġnam . tran . proxy . protection . UserService Proxy Ċ import Ġnam . tran . proxy . protection . UserService Ċ import Ġnam . tran . proxy . virtual . Proxy Image Ċ import Ġnam . tran . singleton .* Ċ import Ġnam . tran . state . G umb all Machine Ċ import Ġnam . tran . strategy .* Ċ import Ġnam . tran . strategy 1 . King Ċ import Ġnam . tran . strategy 1 . K night Ċ import Ġnam . tran . strategy 1 . Queen Ċ import Ġnam . tran . strategy 1 . T roll Ċ import Ġnam . tran . template . C offee Be verage Ċ import Ġnam . tran . template . Te a Be verage Ċ import Ġnam . tran . template 1 . Detail Page Ċ import Ġnam . tran . template 1 . HomePage Ċ import Ġnam . tran . template 1 . Welcome Page ĊĊ Ċ object ĠMain Ġ{ ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġmain ( args : ĠArray < String >) Ġ{ Ġ// Ġwrite Ġyour Ġcode Ġhere Ċ // ĠĠĠĠĠĠĠ Ġstrategy Example () Ċ // ĠĠĠĠĠĠĠ Ġstrategy Example 1 () Ċ // ĠĠĠĠĠĠĠ Ġobserver Example () Ċ // ĠĠĠĠĠĠĠ Ġobserver Example 1 () Ċ // ĠĠĠĠĠĠĠ Ġdecorator Example () Ċ // ĠĠĠĠĠĠĠ Ġfactory Method Example () Ċ // ĠĠĠĠĠĠĠ Ġabstract Factory Example () Ċ // ĠĠĠĠĠĠĠ Ġfactory Method Example 1 () Ċ // ĠĠĠĠĠĠĠ Ġabstract Factory Example 1 () Ċ // ĠĠĠĠĠĠĠ Ġsingleton Pattern Example () Ċ // ĠĠĠĠĠĠĠ Ġcommand Pattern Example () Ċ // ĠĠĠĠĠĠĠ Ġcommand Pattern Example 1 () Ċ // ĠĠĠĠĠĠĠ Ġcommand Pattern Example 2 () Ċ // ĠĠĠĠĠĠĠ Ġadapter Pattern Example () Ċ // ĠĠĠĠĠĠĠ Ġadapter Pattern Example 1 () Ċ // ĠĠĠĠĠĠĠ Ġfac ade Pattern Example () Ċ // ĠĠĠĠĠĠĠ Ġfac ade Pattern Example 1 () Ċ // ĠĠĠĠĠĠĠ Ġtemplate Method Pattern Example () Ċ // ĠĠĠĠĠĠĠ Ġtemplate Method Pattern Example 2 () Ċ // ĠĠĠĠĠĠĠ Ġiterator Pattern Example () Ċ // ĠĠĠĠĠĠĠ Ġcomposite Pattern Example () Ċ // ĠĠĠĠĠĠĠ Ġcomposite Pattern Example 1 () Ċ // ĉĉĠ Ġstate Pattern Example () Ċ // ĠĠĠĠĠĠĠ Ġproxy V it ual Pattern Example () ĊĠĠĠĠĠĠĠ Ġproxy Protection Pattern Example () ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġstrategy Example () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsort Example Ġ= ĠSort Example ( int ArrayOf ( 1 0 , Ġ 2 5 , Ġ 4 , Ġ 7 , Ġ 3 0 , Ġ 5 5 , Ġ 1 , Ġ 5 5 , Ġ 7 , Ġ 4 4 , Ġ 5 , Ġ 5 , Ġ 7 , Ġ 8 , Ġ 2 9 )) ĊĊĠĠĠĠĠĠĠ Ġsort Example . m Sort Type Ġ= ĠQuick Sort () ĊĠĠĠĠĠĠĠ Ġsort Example . sort () ĊĊĠĠĠĠĠĠĠ Ġsort Example . m Sort Type Ġ= ĠB ubble Sort () ĊĠĠĠĠĠĠĠ Ġsort Example . sort () ĊĊĠĠĠĠĠĠĠ Ġsort Example . m Sort Type Ġ= ĠInsert ion Sort () ĊĠĠĠĠĠĠĠ Ġsort Example . sort () ĊĊĠĠĠĠĠĠĠ Ġsort Example . m Sort Type Ġ= ĠSelection Sort () ĊĠĠĠĠĠĠĠ Ġsort Example . sort () ĊĊĠĠĠĠĠĠĠ Ġsort Example . m Sort Type Ġ= ĠBin Sort () ĊĠĠĠĠĠĠĠ Ġsort Example . sort () ĊĊĠĠĠĠĠĠĠ Ġsort Example . m Sort Type Ġ= ĠHeap Sort ( false ) ĊĠĠĠĠĠĠĠ Ġsort Example . sort () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġstrategy Example 1 () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġque en Ġ= ĠQue en () ĊĠĠĠĠĠĠĠ Ġque en . display () ĊĠĠĠĠĠĠĠ Ġque en . fight () ĊĊĠĠĠĠĠĠĠ Ġval Ġking Ġ= ĠKing () ĊĠĠĠĠĠĠĠ Ġking . display () ĊĠĠĠĠĠĠĠ Ġking . fight () ĊĊĠĠĠĠĠĠĠ Ġval Ġk night Ġ= ĠK night () ĊĠĠĠĠĠĠĠ Ġk night . display () ĊĠĠĠĠĠĠĠ Ġk night . fight () ĊĊĠĠĠĠĠĠĠ Ġval Ġt roll Ġ= ĠT roll () ĊĠĠĠĠĠĠĠ Ġt roll . display () ĊĠĠĠĠĠĠĠ Ġt roll . fight () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġobserver Example () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġweather Data Ġ= ĠWeather Data () ĊĊĠĠĠĠĠĠĠ Ġval Ġcurrent Display Ġ= ĠCurrent Conditions Display ( weather Data ) ĊĠĠĠĠĠĠĠ Ġval Ġstatistics Display Ġ= ĠStatistics Display ( weather Data ) ĊĠĠĠĠĠĠĠ Ġval Ġforecast Display Ġ= ĠFore cast Display ( weather Data ) ĊĊĠĠĠĠĠĠĠ Ġweather Data . set Measure ments ( 8 0 f , Ġ 6 5 f , Ġ 3 0 . 4 f ) ĊĠĠĠĠĠĠĠ Ġweather Data . set Measure ments ( 8 2 f , Ġ 7 0 f , Ġ 2 9 . 2 f ) ĊĠĠĠĠĠĠĠ Ġweather Data . set Measure ments ( 7 8 f , Ġ 9 0 f , Ġ 2 9 . 2 f ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġobserver Example 1 () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġaccount 1 : ĠAccount Service Ġ= Ġcreate Account (" zz _ mun su _ zz @ yahoo . com ", Ġ" 1 2 7 . 0 . 0 . 1 ") ĊĠĠĠĠĠĠĠ Ġaccount 1 . login () ĊĠĠĠĠĠĠĠ Ġaccount 1 . change Status ( Login Status . EXPI RED ) ĊĊĠĠĠĠĠĠĠ Ġprintln (" --- ") ĊĠĠĠĠĠĠĠ Ġval Ġaccount 2 : ĠAccount Service Ġ= Ġcreate Account (" nam tran 0 9 0 6 1 9 9 2 @ gmail . com ", Ġ" 1 1 6 . 1 0 8 . 7 7 . 2 3 1 ") ĊĠĠĠĠĠĠĠ Ġaccount 2 . login () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Account ( email : ĠString , Ġip : ĠString ): ĠAccount Service Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġaccount Ġ= ĠAccount Service ( email , Ġip ) ĊĠĠĠĠĠĠĠ Ġaccount . attach ( Logger ()) ĊĠĠĠĠĠĠĠ Ġaccount . attach ( Mailer ()) ĊĠĠĠĠĠĠĠ Ġaccount . attach ( Prot ector ()) ĊĠĠĠĠĠĠĠ Ġreturn Ġaccount ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdecorator Example () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdark Ro ast Ġ= ĠDark Ro ast () ĊĠĠĠĠĠĠĠ Ġval Ġmo cha Ġ= ĠMo cha ( dark Ro ast ) ĊĠĠĠĠĠĠĠ Ġval Ġmo cha 2 Ġ= ĠMo cha ( mocha ) ĊĠĠĠĠĠĠĠ Ġval Ġwh ip Ġ= ĠWh ip ( mocha 2 ) ĊĠĠĠĠĠĠĠ Ġprintln ("${ wh ip . description } Ġ$ ${ wh ip . cost () }") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġfactory Method Example () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġny Store Ġ= ĠN YP izza Store () ĊĠĠĠĠĠĠĠ Ġval Ġch icago Store Ġ= ĠCh icago P izza Store () ĊĠĠĠĠĠĠĠ Ġvar Ġpizza Ġ= Ġny Store . order P izza (" che ese ") ĊĠĠĠĠĠĠĠ Ġprintln (" E then Ġordered Ġa Ġ${ p izza ?. name }") ĊĠĠĠĠĠĠĠ Ġpizza Ġ= Ġch icago Store . order P izza (" che ese ") ĊĠĠĠĠĠĠĠ Ġprintln (" Jo el Ġordered Ġa Ġ${ p izza ?. name }") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġabstract Factory Example () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġny Store Ġ= Ġnam . tran . factory ._ abstract . N YP izza Store () ĊĠĠĠĠĠĠĠ Ġval Ġch icago Store Ġ= Ġnam . tran . factory ._ abstract . Ch icago P izza Store () ĊĠĠĠĠĠĠĠ Ġvar Ġpizza Ġ= Ġny Store . order P izza (" che ese ") ĊĠĠĠĠĠĠĠ Ġprintln (" E then Ġordered Ġa Ġ${ p izza ?. name }") ĊĠĠĠĠĠĠĠ Ġpizza Ġ= Ġch icago Store . order P izza (" che ese ") ĊĠĠĠĠĠĠĠ Ġprintln (" Jo el Ġordered Ġa Ġ${ p izza ?. name }") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠĠĠĠĠ ĠT áº¥t Ġc áº£ Ġh á»ĩ Ġth á»ĳ ng Ġng Ã¢n Ġh Ãłng ĠcÃ³ Ġc ung Ġc áº¥ p ĠAPI ĠÄĳá»ĥ Ġtr uy Ġc áºŃp ĠÄĳ áº¿n Ġh á»ĩ Ġth á»ĳ ng Ġcá»§a Ġh á»į . ĠTeam ĠÄĳÆ°á»£c Ġg iao Ġn hi á»ĩ m Ġv á»¥ Ġth i áº¿t Ġk áº¿ Ġmá»Ļt ĠAPI ĠÄĳá»ĥ Ġclient ĠcÃ³ Ġthá»ĥ Ġs á»Ń Ġd á»¥ ng Ġd á»ĭ ch Ġv á»¥ ĊĠĠĠĠĠĠĠ Ġcá»§a Ġmá»Ļt Ġng Ã¢n Ġh Ãłng Ġb áº¥t Ġk á» ³ . ĠHi á»ĩn Ġt áº¡i , Ġph ÃŃa Ġclient Ġch á»ī Ġc áº§n Ġs á»Ń Ġd á»¥ ng Ġd á»ĭ ch Ġv á»¥ Ġcá»§a Ġ 2 Ġng Ã¢n Ġh Ãłng ĠlÃł ĠV iet com Bank ĠvÃł ĠTP Bank . ĠT uy Ġn hi Ãªn ĠÄĳá»ĥ Ġd á» ħ Ġm á»Ł Ġr á»Ļ ng Ġsa u Ġn Ãły , ĠvÃł Ġph ÃŃa ĊĠĠĠĠĠĠĠ Ġclient Ġmong Ġmu á»ĳ n ĠkhÃ´ng Ġc áº§n Ġph áº£i Ġth ay ĠÄĳá» ķ i Ġcode Ġcá»§a Ġh á»į Ġk hi Ġc áº§n Ġs á»Ń Ġd á»¥ ng Ġth Ãªm Ġd á»ĭ ch Ġv á»¥ Ġcá»§a Ġng Ã¢n Ġh Ãłng Ġkh Ã¡c . ĊĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġfactory Method Example 1 () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtp Bank Ġ= ĠBank Factory . get Bank (" TP Bank ") ĊĠĠĠĠĠĠĠ Ġtp Bank ?. payment () ĊĠĠĠĠĠĠĠ Ġval Ġv iet com Bank Ġ= ĠBank Factory . get Bank (" V iet com Bank ") ĊĠĠĠĠĠĠĠ Ġv iet com Bank ?. payment () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠĠĠĠĠ ĠM á»Ļt ĠcÃ´ng Ġty ĠÄĳá» ĵ Ġn á»Ļ i Ġth áº¥t Ġch uy Ãªn Ġs áº£n Ġx u áº¥t Ġgh áº¿ Ġ( Ch air ): Ġgh áº¿ Ġnh á»± a Ġ( Pl astic Ch air ) ĠvÃł Ġgh áº¿ Ġg á» Ĺ Ġ( W ood Ch air ). ĠV á»Ľi Ġt Ã¬nh Ġh Ã¬nh Ġk inh Ġdo anh Ġng Ãły Ġc Ãłng Ġth u áºŃ n Ġth á» £ i Ġn Ãªn ĠcÃ´ng Ġty Ġqu y áº¿t ĊĠĠĠĠĠĠĠ ĠÄĳá» ĭ nh Ġm á»Ł Ġr á»Ļ ng Ġth Ãªm Ġs áº£n Ġx u áº¥t Ġb Ãł n Ġ( Table ). ĠV á»Ľi Ġl á» £ i Ġth áº¿ ĠlÃł ĠÄĳ Ã£ ĠcÃ³ Ġk inh Ġn ghi á»ĩ m Ġt á»« Ġs áº£n Ġx u áº¥t Ġgh áº¿ Ġn Ãªn ĠcÃ´ng Ġty Ġv áº « n Ġgi á»¯ Ġch áº¥t Ġli á»ĩ u ĠlÃł Ġnh á»± a Ġ( Pl astic Table ) ĠvÃł Ġg á» Ĺ Ġ( W ood Table ) Ġcho ĊĠĠĠĠĠĠĠ Ġs áº£n Ġx u áº¥t Ġb Ãł n . ĠT uy Ġn hi Ãªn , Ġqu y Ġtr Ã¬nh Ġs áº£n Ġx u áº¥t Ġgh áº¿ / Ġb Ãł n Ġthe o Ġt á»« ng Ġch áº¥t Ġli á»ĩ u Ġ( Material Type ) ĠlÃł Ġkh Ã¡c Ġnh au . ĠN Ãªn ĠcÃ´ng Ġty Ġt Ã¡ch Ġra ĠlÃł Ġnh Ãł ĠmÃ¡ y Ġ( Factory ): Ġ 1 Ġcho Ġs áº£n Ġx u áº¥t Ġv áºŃt ĊĠĠĠĠĠĠĠ Ġli á»ĩ u Ġb áº ± ng Ġnh á»± a Ġ( Pl astic Factory ), Ġ 1 Ġcho Ġs áº£n Ġx u áº¥t Ġv áºŃt Ġli á»ĩ u Ġb áº ± ng Ġg á» Ĺ Ġ( W ood Factory ), Ġnh Æ° ng Ġc áº£ Ġ 2 ĠÄĳá» ģ u ĠcÃ³ Ġthá»ĥ Ġs áº£n Ġx u áº¥t Ġgh áº¿ ĠvÃł Ġb Ãł n Ġ( F unit ure Abstract Factory ). ĠK hi Ġkh Ã¡ch Ġh Ãłng ĊĠĠĠĠĠĠĠ Ġc áº§n Ġm ua Ġmá»Ļt Ġm Ã³n ĠÄĳá» ĵ Ġn Ãł o , Ġkh Ã¡ch Ġh Ãłng Ġ( Client ) Ġch á»ī Ġc áº§n ĠÄĳ áº¿n Ġc á»Ń a Ġh Ãłng ĠÄĳá»ĥ Ġm ua Ġ( F unit ure Factory ). ĠK hi ĠÄĳ Ã³ Ġ á»© ng Ġvá»Ľi Ġt á»« ng Ġh Ãłng Ġh Ã³ a ĠvÃł Ġv áºŃt Ġli á»ĩ u Ġs áº½ ĠÄĳÆ°á»£c Ġch uy á»ĥ n Ġv á»ģ Ġph Ã¢n Ġx Æ°á» Ł ng ĊĠĠĠĠĠĠĠ Ġt Æ°Æ¡ng Ġ á»© ng ĠÄĳá»ĥ Ġs áº£n Ġx u áº¥t Ġ( create XXX ) Ġra Ġb Ãł n Ġ( Table ) ĠvÃł Ġgh áº¿ Ġ( Ch air ). ĊĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġabstract Factory Example 1 () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġf unit ure W ood Ġ= ĠF unit ure Factory . getF unit ure (" wood ") ĊĠĠĠĠĠĠĠ Ġf unit ure W ood ?. create Ch air ()?. create () ĊĠĠĠĠĠĠĠ Ġf unit ure W ood ?. createTable ()?. create () ĊĠĠĠĠĠĠĠ Ġval Ġf unit ure Pl astic Ġ= ĠF unit ure Factory . getF unit ure (" pl astic ") ĊĠĠĠĠĠĠĠ Ġf unit ure Pl astic ?. create Ch air ()?. create () ĊĠĠĠĠĠĠĠ Ġf unit ure Pl astic ?. createTable ()?. create () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠĠĠĠĠ ĠD Æ°á» Ľi ĠÄĳ Ã¢ y ĠlÃł Ġmá»Ļt Ġs á»ĳ Ġtr Æ°á» Ŀ ng Ġh á» £ p Ġs á»Ń Ġd á»¥ ng Ġcá»§a ĠSingleton ĠPattern Ġth Æ°á» Ŀ ng Ġg áº· p : ĊĠĠĠĠĠĠĠ ĠV Ã¬ Ġclass Ġd Ã¹ ng ĠSingleton Ġch á»ī Ġt á»ĵ n Ġt áº¡i Ġ 1 ĠInstance Ġ( th á»ĥ Ġhi á»ĩn ) Ġn Ãªn Ġn Ã³ Ġth Æ°á» Ŀ ng ĠÄĳÆ°á»£c Ġd Ã¹ ng Ġcho ĠcÃ¡c Ġtr Æ°á» Ŀ ng Ġh á» £ p Ġgi áº£i Ġqu y áº¿t ĠcÃ¡c Ġb Ãłi Ġto Ã¡n Ġc áº§n Ġtr uy Ġc áºŃp ĠvÃł o ĠcÃ¡c ĊĠĠĠĠĠĠĠ Ġ á»© ng Ġd á»¥ ng Ġnh Æ° : ĠShared Ġresource , ĠLogger , ĠConfiguration , ĠC aching , ĠThread Ġpool , ĠâĢ¦ ĠM á»Ļt Ġs á»ĳ Ġdesign Ġpattern Ġkh Ã¡c Ġc Å © ng Ġs á»Ń Ġd á»¥ ng ĠSingleton ĠÄĳá»ĥ Ġtri á»ĥ n Ġkh ai : ĠAbstract ĊĠĠĠĠĠĠĠ ĠFactory , ĠBuilder , ĠProt otype , ĠF acade , âĢ¦ ĠÄĲ Ã£ ĠÄĳÆ°á»£c Ġs á»Ń Ġd á»¥ ng Ġtrong Ġmá»Ļt Ġs á»ĳ Ġclass Ġcá»§a Ġcore Ġjava Ġnh Æ° : Ġjava . lang . Runtime , Ġjava . awt . Desktop . ĊĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġsingleton Pattern Example () Ġ{ ĊĠĠĠĠĠĠĠ ĠE ager Initialization . getInstance () ĊĠĠĠĠĠĠĠ ĠStatic Block Initialization . getInstance () ĊĠĠĠĠĠĠĠ ĠLazy Initialization . getInstance () ĊĠĠĠĠĠĠĠ ĠThread Safe Initialization . getInstance () ĊĠĠĠĠĠĠĠ ĠDouble Check Lock ing Initialization . getInstance () ĊĠĠĠĠĠĠĠ ĠBill P ugh Singleton . getInstance () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcommand Pattern Example () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġremote Control Ġ= ĠRemote Control () ĊĠĠĠĠĠĠĠ Ġval Ġlight K itchen Ġ= ĠLight (" K itchen ") ĊĠĠĠĠĠĠĠ Ġval Ġlight Living Room Ġ= ĠLight (" Living ĠRoom ") ĊĠĠĠĠĠĠĠ Ġval Ġce iling Fan Ġ= ĠCe iling Fan () ĊĠĠĠĠĠĠĠ Ġval Ġgar age Door Ġ= ĠGar age Door () ĊĠĠĠĠĠĠĠ Ġval Ġst ereo Ġ= ĠS ter eo (" Living ĠRoom ") Ċ Ċ // ĠĠĠĠĠĠĠ Ġval Ġlight On Living Room Ġ= ĠLight On Command ( light Living Room ) Ċ // ĠĠĠĠĠĠĠ Ġval Ġlight Off Living Room Ġ= ĠLight Off Command ( light Living Room ) Ċ // Ċ // ĠĠĠĠĠĠĠ Ġremote Control . set Command ( 0 , light On Living Room , light Off Living Room ) Ċ // Ċ // ĠĠĠĠĠĠĠ Ġprintln ( remote Control ) Ċ // Ċ // ĠĠĠĠĠĠĠ Ġremote Control . on Press ( 0 ) Ċ // ĠĠĠĠĠĠĠ Ġremote Control . off Press ( 0 ) Ċ // ĠĠĠĠĠĠĠ Ġprintln ( remote Control ) Ċ // ĠĠĠĠĠĠĠ Ġremote Control . undo Press () Ċ // Ċ // ĠĠĠĠĠĠĠ Ġremote Control . off Press ( 0 ) Ċ // ĠĠĠĠĠĠĠ Ġremote Control . on Press ( 0 ) Ċ // ĠĠĠĠĠĠĠ Ġprintln ( remote Control ) Ċ // ĠĠĠĠĠĠĠ Ġremote Control . undo Press () ĊĊ Ċ // ĠĠĠĠĠĠĠ Ġval Ġce iling Fan High Command Ġ= ĠCe iling Fan High Command ( ce iling Fan ) Ċ // ĠĠĠĠĠĠĠ Ġval Ġce iling Fan Medium Command Ġ= ĠCe iling Fan Medium Command ( ce iling Fan ) Ċ // ĠĠĠĠĠĠĠ Ġval Ġce iling Fan Low Command Ġ= ĠCe iling Fan Low Command ( ce iling Fan ) Ċ // ĠĠĠĠĠĠĠ Ġval Ġce iling Fan Off Command Ġ= ĠCe iling Fan Off Command ( ce iling Fan ) Ċ // Ċ // ĠĠĠĠĠĠĠ Ġremote Control . set Command ( 0 , Ġce iling Fan Medium Command , Ġce iling Fan Off Command ) Ċ // ĠĠĠĠĠĠĠ Ġremote Control . set Command ( 1 , Ġce iling Fan High Command , Ġce iling Fan Off Command ) Ċ // Ċ // ĠĠĠĠĠĠĠ Ġremote Control . on Press ( 0 ) Ċ // ĠĠĠĠĠĠĠ Ġremote Control . off Press ( 0 ) Ċ // ĠĠĠĠĠĠĠ Ġprintln ( remote Control ) Ċ // ĠĠĠĠĠĠĠ Ġremote Control . undo Press () Ċ // ĠĠĠĠĠĠĠ Ġremote Control . on Press ( 1 ) Ċ // ĠĠĠĠĠĠĠ Ġprintln ( remote Control ) Ċ // ĠĠĠĠĠĠĠ Ġremote Control . undo Press () ĊĊĊĠĠĠĠĠĠĠ Ġval Ġlight On Ġ= ĠLight On Command ( light K itchen ) ĊĠĠĠĠĠĠĠ Ġval Ġlight Off Ġ= ĠLight Off Command ( light K itchen ) ĊĠĠĠĠĠĠĠ Ġval Ġst ereo On Ġ= ĠS ter eo On Command ( stere o ) ĊĠĠĠĠĠĠĠ Ġval Ġst ereo Off Ġ= ĠS ter eo Off Command ( stere o ) ĊĊĠĠĠĠĠĠĠ Ġval Ġmacro On Ġ= ĠMacro Command ( array Of ( light On , Ġst ereo On )) ĊĠĠĠĠĠĠĠ Ġval Ġmacro Off Ġ= ĠMacro Command ( array Of ( light Off , Ġst ereo Off )) ĊĊĠĠĠĠĠĠĠ Ġremote Control . set Command ( 0 , Ġmacro On , Ġmacro Off ) ĊĠĠĠĠĠĠĠ Ġprintln (" ------ ĠPush ing ĠMacro ĠOn Ġ------ ") ĊĠĠĠĠĠĠĠ Ġremote Control . on Press ( 0 ) ĊĠĠĠĠĠĠĠ Ġprintln (" ------ ĠPush ing ĠMacro ĠOff Ġ------ ") ĊĠĠĠĠĠĠĠ Ġremote Control . off Press ( 0 ) ĊĠĠĠĠĠĠĠ Ġprintln (" ------ ĠPush ing ĠMacro ĠUndo Ġ------ ") ĊĠĠĠĠĠĠĠ Ġremote Control . undo Press () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠĠĠĠĠ ĠM á»Ļt Ġh á»ĩ Ġth á»ĳ ng Ġng Ã¢n Ġh Ãłng Ġc ung Ġc áº¥ p Ġ á»© ng Ġd á»¥ ng Ġcho Ġkh Ã¡ch Ġh Ãłng Ġ( client ) ĠcÃ³ Ġthá»ĥ Ġm á»Ł Ġ( open ) Ġho áº· c ĠÄĳ Ã³ ng Ġ( close ) Ġt Ãłi Ġk ho áº£n Ġtr á»± c Ġt uy áº¿n . ĠH á»ĩ Ġth á»ĳ ng Ġn Ãły ĠÄĳÆ°á»£c Ġth i áº¿t Ġk áº¿ Ġthe o ĊĠĠĠĠĠĠĠ Ġd áº¡ ng Ġmodule , Ġm á» Ĺ i Ġmodule Ġs áº½ Ġth á»± c Ġhi á»ĩn Ġmá»Ļt Ġn hi á»ĩ m Ġv á»¥ Ġri Ãª ng Ġcá»§a Ġn Ã³ , Ġch áº ³ ng Ġh áº¡n Ġm á»Ł Ġt Ãłi Ġk ho áº£n Ġ( Open Account ), ĠÄĳ Ã³ ng Ġt Ãłi Ġk ho áº£n Ġ( Close Account ). ĠDo Ġh á»ĩ Ġth á»ĳ ng ĠkhÃ´ng Ġbi áº¿t ĊĠĠĠĠĠĠĠ Ġm á» Ĺ i Ġmodule Ġs áº½ ĠlÃł m Ġg Ã¬ , Ġn Ãªn Ġk hi ĠcÃ³ Ġy Ãªu Ġc áº§ u Ġclient Ġ( ch áº ³ ng Ġh áº¡n Ġclick Open Account , Ġclick Close Account ), Ġn Ã³ Ġs áº½ ĠÄĳ Ã³ ng Ġg Ã³ i Ġy Ãªu Ġc áº§ u Ġn Ãły ĠvÃł Ġg á»į i Ġmodule Ġx á»Ń Ġl Ã½ . ĊĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġcommand Pattern Example 1 () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcontrol Ġ= ĠBank Control () ĊĠĠĠĠĠĠĠ Ġval Ġaccount Ġ= ĠAccount () ĊĠĠĠĠĠĠĠ Ġval Ġopen Command Ġ= ĠOpen Account Command ( account ) ĊĠĠĠĠĠĠĠ Ġval Ġclose Command Ġ= ĠClose Account Command ( account ) ĊĊĠĠĠĠĠĠĠ Ġcontrol . setAction ( open Command , Ġclose Command ) ĊĊĠĠĠĠĠĠĠ Ġcontrol . click Open Account () ĊĠĠĠĠĠĠĠ Ġcontrol . click Close Account () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠĠĠĠĠ Ġ á» ¨ ng Ġd á»¥ ng Ġv Äĥ n Ġb áº£n Ġc áº§n Ġmá»Ļt Ġch á»© c Ġn Äĥng ĠÄĳá»ĥ Ġth Ãªm Ġho áº· c Ġl Æ° u Ġtr á»¯ Ġnh á»¯ng Ġh Ãłnh ĠÄĳá» Ļ ng Ġundo Ġhay Ġredo . Ġ( ĠL á» Ľ p ĠDocument Ġch á»ī Ġc ung Ġc áº¥ p Ġph Æ°Æ¡ng Ġth á»© c Ġg hi Ġth Ãªm Ġmá»Ļt ĊĠĠĠĠĠĠĠĠ Ġd Ã² ng Ġv Äĥ n Ġb áº£n Ġm á»Ľi Ġho áº· c Ġx Ã³ a Ġmá»Ļt Ġd Ã² ng Ġv Äĥ n Ġb áº£n ĠÄĳ Ã£ Ġg hi Ġtr Æ°á»Ľ c ĠÄĳ Ã³ . Ġ) ĊĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġcommand Pattern Example 2 () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinstance Ġ= ĠDocument Control () ĊĠĠĠĠĠĠĠ Ġinstance . write (" The Ġ 1 st Ġtext . Ġ") ĊĠĠĠĠĠĠĠ Ġinstance . undo () ĊĠĠĠĠĠĠĠ Ġinstance . read () Ġ// ĠEMPTY ĊĊĠĠĠĠĠĠĠ Ġinstance . redo () ĊĠĠĠĠĠĠĠ Ġinstance . read () Ġ// ĠThe Ġ 1 st Ġtext . ĊĊĠĠĠĠĠĠĠ Ġinstance . write (" The Ġ 2 nd Ġtext . Ġ") ĊĠĠĠĠĠĠĠ Ġinstance . write (" The Ġ 3 rd Ġtext . Ġ") ĊĠĠĠĠĠĠĠ Ġinstance . read () Ġ// ĠThe Ġ 1 st Ġtext . ĠThe Ġ 2 nd Ġtext . ĠThe Ġ 3 rd Ġtext . ĊĊĠĠĠĠĠĠĠ Ġinstance . undo () Ġ// ĠThe Ġ 1 st Ġtext . ĠThe Ġ 2 nd Ġtext . ĊĊĠĠĠĠĠĠĠ Ġinstance . undo () Ġ// ĠThe Ġ 1 st Ġtext . ĊĊĠĠĠĠĠĠĠ Ġinstance . undo () Ġ// ĠEMPTY ĊĊĠĠĠĠĠĠĠ Ġinstance . undo () Ġ// ĠNothing Ġto Ġundo ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġadapter Pattern Example () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdu ck Ġ= ĠM all ard Duck () ĊĠĠĠĠĠĠĠ Ġval Ġtur key Ġ= ĠW ild Tur key () ĊĊĠĠĠĠĠĠĠ Ġval Ġadapter Ġ= ĠTur key Adapter ( tur key ) ĊĊĠĠĠĠĠĠĠ Ġprintln (" The ĠTur key Ġsay Ġ: Ġ") ĊĠĠĠĠĠĠĠ Ġtur key . gob ble () ĊĠĠĠĠĠĠĠ Ġtur key . fly () ĊĊĠĠĠĠĠĠĠ Ġprintln (" The ĠD uck Ġsay Ġ: Ġ") ĊĠĠĠĠĠĠĠ Ġtest Duck ( duck ) ĊĊĠĠĠĠĠĠĠ Ġprintln (" The ĠAdapter Ġsay Ġ: Ġ") ĊĠĠĠĠĠĠĠ Ġtest Duck ( adapter ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠĠĠĠĠ ĠM á»Ļt ĠngÆ°á»Ŀi Ġn Æ°á»Ľ c Ġn go Ãłi Ġmu á»ĳ n Ġtr ao ĠÄĳá» ķ i Ġvá»Ľi Ġmá»Ļt ĠngÆ°á»Ŀi ĠVi á»ĩ t . ĠT uy Ġn hi Ãªn , Ġ 2 ĠngÆ°á»Ŀi Ġn Ãły ĠkhÃ´ng Ġbi áº¿t Ġng Ã´ n Ġng á»¯ Ġcá»§a Ġnh au Ġn Ãªn Ġc áº§n Ġph áº£i ĠcÃ³ Ġmá»Ļt ĊĠĠĠĠĠĠĠ ĠngÆ°á»Ŀi ĠÄĳá»ĥ Ġch uy á»ĥ n ĠÄĳá» ķ i Ġt á»« Ġng Ã´ n Ġng á»¯ Ġn Æ°á»Ľ c Ġn go Ãłi Ġs ang Ġng Ã´ n Ġng á»¯ Ġti áº¿ ng ĠVi á»ĩ t ĊĠĠĠ Ġ*/ ĊĊĠĠĠ Ġfun Ġadapter Pattern Example 1 () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġclient Ġ= ĠTrans lator Adapter ( V iet name se Ad ap tee ()) ĊĠĠĠĠĠĠĠ Ġclient . send (" Hello ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġfac ade Pattern Example () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġamp l ifier Ġ= ĠA mpl ifier () ĊĠĠĠĠĠĠĠ Ġval Ġt uner Ġ= ĠT uner ( amp l ifier ) ĊĠĠĠĠĠĠĠ Ġval Ġd vd Player Ġ= ĠD vd Player ( amp l ifier ) ĊĠĠĠĠĠĠĠ Ġval Ġcd Player Ġ= ĠC d Player ( amp l ifier ) ĊĠĠĠĠĠĠĠ Ġval Ġproject or Ġ= ĠProject or ( dvd Player ) ĊĠĠĠĠĠĠĠ Ġval Ġpop per Ġ= ĠPop corn Pop per () ĊĠĠĠĠĠĠĠ Ġval Ġlights Ġ= ĠThe ater Lights () ĊĠĠĠĠĠĠĠ Ġval Ġscreen Ġ= ĠScreen () ĊĊĠĠĠĠĠĠĠ Ġval Ġhome The ater Ġ= ĠHome The ater Facade ( amp l ifier , Ġt uner , Ġd vd Player , Ġcd Player , Ġproject or , Ġscreen , Ġlights , Ġpop per ) ĊĠĠĠĠĠĠĠ Ġhome The ater . watch Movie () ĊĠĠĠĠĠĠĠ Ġhome The ater . end Movie () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġfac ade Pattern Example 1 () Ġ{ ĊĠĠĠĠĠĠĠ ĠShop Facade . getInstance (). buy Product By Cash With Free Shipping (" nam tran 0 9 0 6 1 9 9 2 @ gmail . com "); ĊĠĠĠĠĠĠĠ ĠShop Facade . getInstance (). buy Product By Pay pal With Standard Shipping (" nam tran 0 9 0 6 1 9 9 2 @ gmail . com ", Ġ" 0 9 6 3 1 6 0 9 0 6 ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtemplate Method Pattern Example () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtea Ġ= ĠT ea Be verage () ĊĠĠĠĠĠĠĠ Ġval Ġcoffee Ġ= ĠC offee Be verage () ĊĠĠĠĠĠĠĠ Ġprintln (" M aking Ġtea Ġ... ") ĊĠĠĠĠĠĠĠ Ġtea . prepare Recipe () ĊĠĠĠĠĠĠĠ Ġprintln (" M aking Ġcoffee Ġ... ") ĊĠĠĠĠĠĠĠ Ġcoffee . prepare Recipe () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠĠĠĠĠ ĠTh i áº¿t Ġk áº¿ Ġwebsite Ġ. ĠC áº¥ u Ġtr Ãº c Ġcá»§a Ġmá»Ļt Ġwebsite Ġth Ã´ng Ġth Æ°á» Ŀ ng Ġg á»ĵ m ĠcÃ¡c Ġph áº§n Ġheader , Ġfooter , Ġnavigation Ġ( menu ), Ġbody . ĊĠĠĠĠĠĠĠĠ ĠRi Ãª ng Ġph áº§n Ġbody Ġth Æ°á» Ŀ ng Ġx uy Ãªn Ġth ay ĠÄĳá» ķ i , Ġs áº½ Ġhi á»ĥ n Ġth á»ĭ Ġri Ãª ng Ġthe o Ġt á»« ng Ġtr ang . ĠN h á»¯ng Ġph áº§n Ġkh Ã¡c Ġ ÃŃt Ġk hi Ġth ay ĠÄĳá» ķ i , Ġtr á»« Ġk hi ĠcÃ³ Ġy Ãªu Ġc áº§ u ĠÄĳ áº· t Ġ. ĊĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġtemplate Method Pattern Example 2 () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġwelcome Ġ= ĠWelcome Page () ĊĠĠĠĠĠĠĠ Ġval Ġhome Ġ= ĠHome Page () ĊĠĠĠĠĠĠĠ Ġval Ġdetail Ġ= ĠDetail Page () ĊĠĠĠĠĠĠĠ Ġprintln (" Build ĠWelcome ĠPage Ġ... ") ĊĠĠĠĠĠĠĠ Ġwelcome . build () ĊĠĠĠĠĠĠĠ Ġprintln (" Build ĠHome ĠPage Ġ... ") ĊĠĠĠĠĠĠĠ Ġhome . build () ĊĠĠĠĠĠĠĠ Ġprintln (" Build ĠDetail ĠPage Ġ... ") ĊĠĠĠĠĠĠĠ Ġdetail . build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġiterator Pattern Example () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġwait ress Ġ= ĠWait ress ( P anc ake House Menu (), ĠD inner Menu (), ĠC afe Menu ()) ĊĠĠĠĠĠĠĠ Ġwait ress . print Menu () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcomposite Pattern Example () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġp anc ake House Menu Ġ= ĠMenu (" PAN CA KE ĠHO USE ĠMENU ", Ġ" Break fast ") ĊĠĠĠĠĠĠĠ Ġp anc ake House Menu . add ( MenuItem (" K & B 's ĠP anc ake ĠBreak fast ", Ġ" P anc akes Ġwith Ġscr amb led Ġeg gs , Ġand Ġtoast ", Ġtrue , Ġ 2 . 9 9 )) ĊĠĠĠĠĠĠĠ Ġp anc ake House Menu . add ( MenuItem (" Regular ĠP anc ake ĠBreak fast ", Ġ" P anc akes Ġwith Ġf ried Ġeg gs , Ġand Ġsa usage ", Ġfalse , Ġ 2 . 9 9 )) ĊĠĠĠĠĠĠĠ Ġp anc ake House Menu . add ( MenuItem (" Bk ue berry ĠP anc ake ", Ġ" P anc akes Ġmade Ġwith Ġfresh Ġblue ber ries ", Ġtrue , Ġ 3 . 4 9 )) ĊĠĠĠĠĠĠĠ Ġp anc ake House Menu . add ( MenuItem (" W aff les ", Ġ" W aff les , Ġwith Ġyour Ġchoice Ġof Ġblue ber ries Ġor Ġstr aw ber ries ", Ġtrue , Ġ 3 . 4 9 )) ĊĊĠĠĠĠĠĠĠ Ġval Ġd inner Menu Ġ= ĠMenu (" D INNER ĠMENU ", Ġ" L unch ") ĊĠĠĠĠĠĠĠ Ġd inner Menu . add ( MenuItem (" Ve get arian ĠB LT ", Ġ"( F ak in ') ĠB acon Ġwith Ġlet t uce Ġ& Ġto mat o Ġon Ġwhole Ġw heat ", Ġtrue , Ġ 2 . 9 9 )) ĊĠĠĠĠĠĠĠ Ġd inner Menu . add ( MenuItem (" BLT ", Ġ" B acon Ġwith Ġlet t uce Ġ& Ġto mat o Ġon Ġwhole Ġw heat ", Ġfalse , Ġ 2 . 9 9 )) ĊĠĠĠĠĠĠĠ Ġd inner Menu . add ( MenuItem (" Soup Ġof Ġthe Ġday ", Ġ" Soup Ġof Ġthe Ġday , Ġwith Ġa Ġside Ġof Ġpot ato Ġsal ad ", Ġfalse , Ġ 3 . 2 9 )) ĊĠĠĠĠĠĠĠ Ġd inner Menu . add ( MenuItem (" Hot dog ", Ġ" A Ġhot Ġdog , Ġwith Ġsa ur k ra ut , Ġrel ish , Ġon ions , Ġto pped Ġwith Ġche ese ", Ġfalse , Ġ 3 . 0 5 )) ĊĠĠĠĠĠĠĠ Ġd inner Menu . add ( MenuItem (" Ste amed ĠV egg ies Ġand ĠBrown ĠR ice ", Ġ" Ste amed Ġve get ables Ġover Ġbrown Ġr ice ", Ġtrue , Ġ 3 . 9 9 )) ĊĠĠĠĠĠĠĠ Ġd inner Menu . add ( MenuItem (" P asta ", Ġ" Sp ag he tti Ġwith ĠMar in ara ĠS au ce , Ġand Ġa Ġslice Ġof Ġs our d ough Ġb read ", Ġtrue , Ġ 3 . 8 9 )) ĊĊĠĠĠĠĠĠĠ Ġval Ġc afe Menu Ġ= ĠMenu (" CA FE ĠMENU ", Ġ" D inner ") ĊĠĠĠĠĠĠĠ Ġc afe Menu . add ( MenuItem (" V egg ie ĠBur ger Ġand ĠAir ĠF ries ", Ġ" V egg ie Ġbur ger Ġon Ġa Ġwhole Ġw heat Ġbun , Ġlet t uce , Ġto mat o , Ġand Ġf ries ", Ġtrue , Ġ 3 . 9 9 )) ĊĠĠĠĠĠĠĠ Ġc afe Menu . add ( MenuItem (" Soup Ġof Ġthe Ġday ", Ġ" A Ġcup Ġof Ġthe Ġsoup Ġof Ġthe Ġday , Ġwith Ġa Ġside Ġsal ad ", Ġfalse , Ġ 3 . 6 9 )) ĊĠĠĠĠĠĠĠ Ġc afe Menu . add ( MenuItem (" Bur rito ", Ġ" A Ġlarge Ġbur rito , Ġwith Ġwhole Ġp into Ġbe ans , Ġsal sa , Ġgu ac am ole ", Ġtrue , Ġ 4 . 2 9 )) ĊĊĠĠĠĠĠĠĠ Ġval Ġde ssert Menu Ġ= ĠMenu (" DES SERT ĠMENU ", Ġ" D ess ert Ġof Ġcourse !") ĊĊĠĠĠĠĠĠĠ Ġval Ġall Menu Ġ= ĠMenu (" ALL ĠM EN US ", Ġ" All Ġmenus Ġcombined ") ĊĠĠĠĠĠĠĠ Ġall Menu . add ( p anc ake House Menu ) ĊĠĠĠĠĠĠĠ Ġall Menu . add ( d inner Menu ) ĊĠĠĠĠĠĠĠ Ġall Menu . add ( ca fe Menu ) ĊĠĠĠĠĠĠĠ Ġd inner Menu . add ( de ssert Menu ) ĊĠĠĠĠĠĠĠ Ġde ssert Menu . add ( MenuItem (" Apple ĠP ie ", Ġ" Apple Ġpie Ġwith Ġa Ġfl a key Ġcr ust , Ġto pped Ġwith Ġvanilla Ġice c ream ", Ġtrue , Ġ 1 . 5 9 )) ĊĊĠĠĠĠĠĠĠ Ġval Ġwait ress Ġ= Ġnam . tran . composite . Wait ress ( all Menu ) ĊĠĠĠĠĠĠĠ Ġwait ress . print Ve get arian Menu () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠĠĠĠĠ ĠM á»Ļt Ġh á»ĩ Ġth á»ĳ ng Ġt áºŃp Ġtin ĠlÃł Ġmá»Ļt Ġc áº¥ u Ġtr Ãº c Ġc Ã¢ y ĠcÃ³ Ġch á»© a ĠcÃ¡c Ġnh Ã¡n h ĠlÃł ĠcÃ¡c Ġth Æ° Ġm á»¥ c Ġ( folder ĠâĢĵ Ġcomposite ), Ġc Å © ng Ġnh Æ° ĠcÃ¡c Ġn Ãº t Ġl Ã¡ ĠlÃł ĠcÃ¡c Ġt á»ĩ p Ġ( file ĠâĢĵ Ġleaf ). ĊĠĠĠĠĠĠĠ ĠM á»Ļt Ġfolder ĠcÃ³ Ġthá»ĥ Ġch á»© a Ġmá»Ļt Ġho áº· c Ġn hi á»ģu Ġfile Ġho áº· c Ġfolder . ĠFile ĠvÃł ĠFolder ĠcÃ³ Ġn hi á»ģu Ġth ao Ġt Ã¡c ĠvÃł Ġth u á»Ļ c Ġt ÃŃ nh Ġch ung , Ġch áº ³ ng Ġh áº¡n Ġnh Æ° : Ġdi Ġch uy á»ĥ n Ġ( cut ) ĊĠĠĠĠĠĠĠ Ġ, Ġs ao Ġch Ã©p Ġ( copy ), Ġli á»ĩ t Ġk Ãª Ġ( view ) Ġho áº· c ĠcÃ¡c Ġth u á»Ļ c Ġt ÃŃ nh Ġth Æ° Ġm á»¥ c Ġnh Æ° Ġt Ãªn Ġt á»ĩ p ĠvÃł Ġk ÃŃch Ġth Æ°á»Ľ c . ĊĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġcomposite Pattern Example 1 () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfile 1 : ĠFile Component Ġ= ĠFile (" file Ġ 1 ", Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġfile 2 : ĠFile Component Ġ= ĠFile (" file Ġ 2 ", Ġ 5 ) ĊĠĠĠĠĠĠĠ Ġval Ġfile 3 : ĠFile Component Ġ= ĠFile (" file Ġ 3 ", Ġ 1 2 ) ĊĊĠĠĠĠĠĠĠ Ġval Ġfiles Ġ= ĠlistOf ( file 1 , Ġfile 2 , Ġfile 3 ) ĊĠĠĠĠĠĠĠ Ġval Ġfolder : ĠFile Component Ġ= ĠFolder ( files ) ĊĠĠĠĠĠĠĠ Ġfolder . show Property () ĊĠĠĠĠĠĠĠ Ġprintln (" Total ĠSize : Ġ" Ġ+ Ġfolder . total Size ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġstate Pattern Example () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġg umb all Machine Ġ= ĠG umb all Machine ( 5 ) ĊĊĠĠĠĠĠĠĠ Ġprintln ("\ n " Ġ+ Ġg umb all Machine Ġ+ Ġ"\ n ") ĊĊĠĠĠĠĠĠĠ Ġwhile Ġ( true ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġg umb all Machine . insert Qu arter () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġg umb all Machine . turn C rank () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( g umb all Machine . count Ġ== Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbreak ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprintln ("\ n " Ġ+ Ġg umb all Machine Ġ+ Ġ"\ n ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġtest Duck ( duck : ĠD uck ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdu ck . qu ack () ĊĠĠĠĠĠĠĠ Ġdu ck . fly () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġproxy V it ual Pattern Example () Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln (" Init Ġproxy Ġimage : Ġ") ĊĠĠĠĠĠĠĠ Ġval Ġproxy Image Ġ= ĠProxy Image (" https :// gp coder . com / favicon . ico ") ĊĊĠĠĠĠĠĠĠ Ġprintln (" --- ") ĊĠĠĠĠĠĠĠ Ġprintln (" Call Ġreal Ġservice Ġ 1 st : Ġ") ĊĠĠĠĠĠĠĠ Ġproxy Image . show Image () ĊĊĠĠĠĠĠĠĠ Ġprintln (" --- ") ĊĠĠĠĠĠĠĠ Ġprintln (" Call Ġreal Ġservice Ġ 2 nd : Ġ") ĊĠĠĠĠĠĠĠ Ġproxy Image . show Image () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġproxy Protection Pattern Example () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġadmin : ĠUserService Ġ= ĠUserService Proxy (" gp coder ", Ġ" admin ") ĊĠĠĠĠĠĠĠ Ġadmin . load () ĊĠĠĠĠĠĠĠ Ġadmin . insert () ĊĊĠĠĠĠĠĠĠ Ġval Ġcustomer : ĠUserService Ġ= ĠUserService Proxy (" customer ", Ġ" guest ") ĊĠĠĠĠĠĠĠ Ġcustomer . load () ĊĠĠĠĠĠĠĠ Ġcustomer . insert () ĊĠĠĠ Ġ} Ċ }