案例解析代理模式是什么

  介绍

案例解析代理模式是什么?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!

<强>代理模式

代理模式的作用和继承以及接口和组合的作用类似,都是为了聚合共用部分,减少公共部分的代码。

不同的是相比起继承,他们的语境不同,继承要表达的含义是是一个,而代理要表达的含义更接近于接口,是有一个,而且使用代理的话应了一句话“少用继承,多用组合“,要表达的意思其实也就是降低耦合度了。

对于组合来说,他比组合更具灵活性,比如我们将代理对象设为私有,那么我可以选择只提供一部分的代理功能,例如打印机的某一个或两个方法,又或者在提供打印机的功能的时候加入一些其他的操作,这些都是可以的。

& lt; php ?//代理对象,一台打印机   类打印机{   公共函数printSth () {   回声& # 39;我可以打印& lt; br> & # 39;;   }   }//这是一个文印处理店,只文印,卖纸,不照的相   类TextShop {   私人打印机美元;   公共函数__construct(打印机打印美元){   $ this→打印机=$打印机;   }//卖纸   公共函数sellPaper () {   回声& # 39;给你一些纸& lt; br> & # 39;;   }//将代理对象有的功能交给代理对象处理   公共函数__call(方法,美元args) {   如果(method_exists ($ this→打印机,$方法)){   美元$ this→打印机→方法(args);   }   }   }//这是一个照相店,只文印,拍的照,不卖纸   类PhotoShop {   私人打印机美元;      公共函数__construct(打印机打印美元){   $ this→打印机=$打印机;   }      公共函数takePhotos(){//照的相   回声& # 39;为你拍照& lt; br> & # 39;;   }      公共函数__call(方法,美元args){//将代理对象有的功能交给代理对象处理   如果(method_exists ($ this→打印机,$方法)){   美元$ this→打印机→方法(args);   }   }   }   $打印机=新打印机();   (textShop=new textShop美元打印机);   (ps=new photoShop美元打印机);   美元textShop→printSth ();   photoShop→美元printSth ();

感谢各位的阅读!看完上述内容,你们对案例解析代理模式是什么大概了解了吗?希望文章内容对大家有所帮助。如果想了解更多相关文章内容,欢迎关注行业资讯频道。

案例解析代理模式是什么