注:本文主要代碼基於大話設計模式裏的C#代碼(第7章)。
UML圖:
代理模式的實現:
代理模式很好實現,注意的是要將RealSubject要代理的功能抽象出一個Subject接口,
讓Proxy代理類實現該接口,這樣外界可以通過代理對象直接使用RealSubject的功能。
實體類可以將自己的不同功能代理出去,這樣實體類只跟代理類耦合,外界只跟代理類耦合。
代理類相當於一箇中介者。並可適當地添加或優化某些調用。
下面代碼展示的是代理戀愛(@_@!)由於追求者使用代理人來實現自己送禮物的功能
被追求的女同學不需知道到底是誰在追求她,她只負責接收禮物。
代碼如下: