介绍
案例解析代理模式是什么?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!
<强>代理模式强>
代理模式的作用和继承以及接口和组合的作用类似,都是为了聚合共用部分,减少公共部分的代码。
不同的是相比起继承,他们的语境不同,继承要表达的含义是是一个,而代理要表达的含义更接近于接口,是有一个,而且使用代理的话应了一句话“少用继承,多用组合“,要表达的意思其实也就是降低耦合度了。
对于组合来说,他比组合更具灵活性,比如我们将代理对象设为私有,那么我可以选择只提供一部分的代理功能,例如打印机的某一个或两个方法,又或者在提供打印机的功能的时候加入一些其他的操作,这些都是可以的。
& 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 ();
感谢各位的阅读!看完上述内容,你们对案例解析代理模式是什么大概了解了吗?希望文章内容对大家有所帮助。如果想了解更多相关文章内容,欢迎关注行业资讯频道。