ウェディングドレスを行うために他の人のための7.1!
7.2何のエージェント・コードありません
名前空間代理模式 { クラスプログラム { 静的な 無効メイン(文字列[] argsを) { 女子高生jiaojiao = 新しい女子高生(); jiaojiao.Name = " 李娇娇" 。 追求zhuojiayi = 新しい追求(jiaojiao)。 zhuojiayi.GiveDolls(); zhuojiayi.GiveFlowers(); zhuojiayi.GiveChocolate(); Console.Read(); } } // 追求者 クラスの追求 { 女子高生MM。 公共の追求(女子高生MM) { この .mm = MM。 } 公共 ボイドGiveDolls() { Console.WriteLineを(mm.Name + " 送你洋娃娃" )。 } 公共 ボイドGiveFlowers() { Console.WriteLineを(mm.Name + " 送你鲜花" )。 } 公共 ボイドGiveChocolate() { Console.WriteLineを(mm.Name + "あなたにチョコレートを送ります" ); } } // 被追求者 クラスの女子高生 { プライベート 文字列名; パブリック 文字列名前 { 取得 { 戻り名;} 設定 {名前= 値;} } } }
唯一の7.3プロキシコード
名前空間プロキシモード { クラスプログラム { 静的 ボイドメイン(文字列[]引数) { スクールJiaojiao = 新しい新しいスクール(); jiaojiao.Nameは = " Liが待機" ; プロキシDaiLi = 新しい新しいプロキシ(Jiaojiao); daili.GiveDolls(); DaiLi。 GiveFlowers(); daili.GiveChocolate(); Console.Read(); } } // により クラスプロキシ { mmの女子高生、 公共のプロキシ(女子高生ミリメートル) { この .mm = ミリメートル; } パブリック 無効GiveDolls() { Console.WriteLineを(mm.Name + " あなたは人形送信" ); } パブリック 無効GiveFlowers() { Console.WriteLineを(ミリメートル.nameの + " あなたに花を送る" ); } パブリック 無効GiveChocolate() { Console.WriteLineを(mm.Name + 「あなたにチョコレートを送ります" ); } } // 被追求者 クラスの女子高生 { プライベート 文字列名; パブリック 文字列名前 { 取得 { 戻り名;} 設定 {名前= 値;} } } }
実際のコードに沿って7.4
名前空間代理模式 { クラスプログラム { 静的な 無効メイン(文字列[] argsを) { 女子高生jiaojiao = 新しい女子高生(); jiaojiao.Name = " 李娇娇" 。 プロキシdaili = 新しいプロキシ(jiaojiao)。 daili.GiveDolls(); daili.GiveFlowers(); daili.GiveChocolate(); Console.Read(); } } // 送礼物 インターフェイスGiveGift { ボイド GiveChocolate()GiveDolls(); 空GiveFlowers(); 無効GiveChocolateを(); } クラスプロキシ:GiveGift { 追求GG。 公共のプロキシ(女子高MM) { GG = 新しい追求(MM) } 公共 ボイドGiveDolls() { gg.GiveDolls()。 } 公共 ボイドGiveFlowers() { gg.GiveFlowers()。 } 公共 ボイド { gg.GiveChocolate()。 } } クラス追求:GiveGift { スクールMM。 公共の追求(女子高生MM) { この .mm = MM。 } 公共 ボイドGiveDolls() { Console.WriteLineを(mm.Name + " 送你洋娃娃" )。 } 公共 ボイドGiveFlowers() { Console.WriteLineを(mm.Name + " 送你鲜花" )。 } 公共 ボイドGiveChocolate() { Console.WriteLineを(mm.Name + " 送你巧克力" )。 } } クラス女子高 { プライベート 文字列名。 パブリック 文字列名前 { 取得 { 戻り名を、} 集合 {名前= 値。} } } }
7.5プロキシモード
他のオブジェクトへのオブジェクトへのアクセスを制御するプロキシを提供し、
名前空間プロキシモード { クラスプログラム { 静的 ボイドメイン(文字列[]引数) { プロキシプロキシ = 新しい新しいプロキシ(); proxy.Request(); Console.Read(); } } // 共通インタフェースおよびプロキシRealSubjectを定義するようにプロキシがRealSubject、のどこにでも使用することができる 抽象 クラステーマ { パブリック 抽象 ボイド要求(); } // 実際のエンティティの定義がプロキシ表す クラスRealSubjectを:件名 { 公共 オーバーライド 無効要求() { Console.WriteLineを(「真の要求を」); } } // 剤はエンティティの代わりに使用することができるように、そのような薬剤への参照を格納するには、エンティティにアクセスし、被写体インタフェースと同一のインタフェースを提供することができ、 クラスプロキシ:件名 { RealSubject RealSubject; 公共 オーバーライド 無効要求() { IF(RealSubject == NULL ) RealSubject = 新しい新しいRealSubjectを(); realSubject.Request(); } } }
7.6アプリケーションプロキシモード
プロキシモードのアプリケーション:
あなたは、オブジェクトが異なるアドレス空間に存在するという事実を隠すことができますので、別のアドレス空間内のオブジェクトのローカル代表を提供することである。1.リモートエージェント、
2.アラート実際のオブジェクトのインスタンスを格納するためにそこを通って、ベースのオーバーヘッドのオブジェクトの多くを作成する必要があり、長い時間がかかり、
3.セキュリティエージェントは、時に実際のオブジェクトへのアクセス権を制御するために使用し、
4.スマートガイドラインは、あなたが実際のオブジェクトを呼び出すとき、エージェントはいくつかの他のものを扱うことを意味し
7.7学者は、その小さな6つの世代が結婚してみましょう