设计模式——中介者模式
生活随笔
收集整理的這篇文章主要介紹了
设计模式——中介者模式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
| 名稱 | Mediator |
| 結構 | ? |
| 意圖 | 用一個中介對象來封裝一系列的對象交互。中介者使各對象不需要顯式地相互引用,從而使其耦合松散,而且可以獨立地改變它們之間的交互。 |
| 適用性 |
|
| Code Example | ?1//?Mediator ?2 ?3//?Intent:?"Define?an?object?that?encapsulates?how?a?set?of?objects?interact.? ?4//?Mediator?promotes?loose?coupling?by?keeping?objects?from?referring?to?each ?5//?other?explicitly,?and?it?lets?you?vary?their?interaction?independently."? ?6 ?7//?For?further?information,?read?"Design?Patterns",?p273,?Gamma?et?al., ?8//?Addison-Wesley,?ISBN:0-201-63361-2 ?9 10/**//*?Notes: 11?*?Consider?a?mediator?as?a?hub,?which?objects?that?need?to?talk?- 12?*?but?do?not?wish?to?be?interdependent?-?can?use.? 13?*/ 14? 15namespace?Mediator_DesignPattern 16{ 17????using?System; 18 19????class?Mediator? 20????{ 21????????private?DataProviderColleague?dataProvider; 22????????private?DataConsumerColleague?dataConsumer; 23????????public?void?IntroduceColleagues(DataProviderColleague?c1,?DataConsumerColleague?c2) 24????????{ 25????????????dataProvider?=?c1; 26????????????dataConsumer?=?c2;???????????? 27????????} 28???????? 29????????public?void?DataChanged() 30????????{ 31????????????int?i?=?dataProvider.MyData; 32????????????dataConsumer.NewValue(i); 33????????} 34????} 35 36????class?DataConsumerColleague? 37????{ 38????????public?void?NewValue(int?i) 39????????{ 40????????????Console.WriteLine("New?value?{0}",?i); 41????????} 42????} 43 44????class?DataProviderColleague 45????{ 46????????private?Mediator?mediator; 47????????private?int?iMyData=0; 48????????public?int?MyData? 49????????{ 50????????????get? 51????????????{ 52????????????????return?iMyData; 53????????????} 54????????????set? 55????????????{ 56????????????????iMyData?=?value; 57????????????} 58????????} 59????????public?DataProviderColleague(Mediator?m) 60????????{ 61????????????mediator?=?m; 62????????} 63 64????????public?void?ChangeData() 65????????{ 66????????????iMyData?=?403; 67 68????????????//?Inform?mediator?that?I?have?changed?the?data 69????????????if?(mediator?!=?null) 70????????????????mediator.DataChanged();???? 71????????}???????? 72????} 73 74????/**////?<summary> 75????///????Summary?description?for?Client. 76????///?</summary> 77????public?class?Client 78????{ 79????????public?static?int?Main(string[]?args) 80????????{???????????? 81????????????Mediator?m?=?new?Mediator(); 82????????????DataProviderColleague?c1?=?new?DataProviderColleague(m); 83????????????DataConsumerColleague?c2?=?new?DataConsumerColleague(); 84????????????m.IntroduceColleagues(c1,c2); 85 86????????????c1.ChangeData(); 87 88????????????return?0; 89????????} 90????} 91} 92 93 |
轉載于:https://www.cnblogs.com/DarkAngel/archive/2005/08/09/210468.html
總結
以上是生活随笔為你收集整理的设计模式——中介者模式的全部內容,希望文章能夠幫你解決所遇到的問題。