Welcome to the website navigation,本站只接受合法正规的企业网站,欢迎站长们提交你的网站获得展示和流量有任何问题请联系站长,欢迎大家加入本站。

                
提交网站
  • 网站:76083
  • 待审:5
  • APP:577
  • 文章:304411
  • 会员:56004
文字内链包年1000元 文字内链包年1000元 文字内链包年1000元 AI办公网站 AI绘画工具 AIchat

名站导航为爱好php程序的朋友们提供php相关的教程知识。

代理,指的就是一个角色代表另一个角色采取行动,就象生活中,一个红酒厂商,是不会直接把红酒零售客户的,都是通过代理来完成他的销售业务。而客户,也不用为了喝红酒而到处找工厂,他只要找到厂商在当地的代理就行了,具体红酒工厂在那里,客户不用关心,代理会帮他处理。oDNAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

代理模式,就是给某一对象提供代理对象,并由代理对象控制具体对象的引用。oDNAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

代理模式涉及的角色:oDNAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!


oDNAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

抽象主题角色,声明了代理主题和真实主题的公共接口,使任何需要真实主题的地方都能用代理主题代替。oDNAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

代理主题角色,含有真实主题的引用,从而可以在任何时候操作真实主题,代理主题功过提供和真实主题相同的接口,使它可以随时代替真实主题。代理主题通过持有真实主题的引用,不但可以控制真实主题的创建或删除,可以在真实主题被调用前进行拦截,或在调用后进行某些操作。oDNAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

真实代理对象,定义了代理角色所代表的具体对象。oDNAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!


oDNAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

参考一下代码:oDNAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

<?php
	/**
	* 代理模式
	*
	* 为其他对象提供一个代理以控制这个对象的访问
	*
	*/
	interface Proxy
	{
		public function request();
		public function display();
	}
	class RealSubject
	{
		public function request()
		{
			echo "RealSubject request<br />";
		}
	
		public function display()
		{
			echo "RealSubject display<br />";
		}
	}
	
	class ProxySubject
	{
		private $_subject = null;
		public function __construct()
		{
			$this->_subject = new RealSubject();
		}
	
		public function request()
		{
			$this->_subject->request();
		}
	
		public function display()
		{
			$this->_subject->display();
		}
	}
	
	$objProxy = new ProxySubject();
	$objProxy->request();
	$objProxy->display();
?>

代理模式的工作方式:首先,因为代理主题和真实主题都实现了共同的接口,这使我们可以在不改变原来接口的情况下,只要用真实主题对象的地方,都可以用代理主题来代替。其次,代理主题在客户和真实主题之间起了一个中介作用,利用这个中介平台,我们可以在把客户请求传递给真实主题之前做一些必要的预处理。oDNAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

还有一个很常见的代理模式的使用例子就是对大幅图片浏览的控制。在我们常见的网站上面浏览图文的信息时,不知道你有没有注意到,图片位置放置的是经过缩小的,当有人要仔细的查看这个图片时,可以通过点击图片来激活一个链接,在一个新的网页打开要看的图片 。这样对于提高浏览速度是很有好处的,因为不是每个人都要去看仔细图上的信息。这种情况就可以使用代理模式来全面实现。这里我将思路表述出来,至于实现由于工作原因,就不表述了,至于这种方式在B/S模式下的真实可行性,我没有确认过,只是凭空的想象。如果不是可行的方式,那这个例子可以放到一个C/S下来实现,这个是绝对没有问题的,而且在很多介绍设计模式的书和文章中使用。两种方式的实现有兴趣的可以来尝试一下:)oDNAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

我们在浏览器中访问网页时是调用的不是真实的装载图片的方法,而是在代理对象中的方法,在这个对象中,先使用一个线程向浏览器装载了一个缩小版的图片,而在后台使用另一个线程来调用真实的装载大图片的方法将图片加载到本地,当你要浏览这个图片的时候,将其在新的网页中显示出来。当然如果在你想浏览的时候图片尚未加载成功,可以再启动一个线程来显示提示信息,直到加载成功。oDNAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

这样代理模式的功能就在上面体现的淋漓尽致――通过代理来将真实图片的加载放到后台来操作,使其不影响前台的浏览。oDNAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

代理模式能够协调调用者和被调用者,能够在一定程度上降低系统的耦合度。不过一定要记住前面讲的使用代理模式的条件,不然的话使用了代理模式不但不会有好的效果,说不定还会出问题的。oDNAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!


oDNAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

名站网址导航

PhP程序设计模式:状态State模式oDNAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

状态模式属于对象创建型模式,其意图是允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了他的类。比较常见的例子是在一个表示网络连接的类TCPConnection,一个TCPConnection对象的状态处于若干不同的状态之一:连接已经建立(Established),正在监听,连接已经关闭(closed)。当一个TCPConnection对象收到其他对象的请求时,他根据自身的状态作出不同的反应。oDNAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

好了关于php程序的知识就说到这里希望可以帮助需要的朋友。,Proxy模式

标签:Proxy模式

分享到:

  admin

注册时间:

网站:0 个   APP:3 个  文章:0 篇

  • 76083

    网站

  • 577

    APP

  • 304411

    文章

  • 56004

    会员

赶快注册账号,推广您的网站吧!
文章分类
热门网站
最新入驻APP小程序

宝贝市场2023-02-08

宝贝市场——买手和卖家商品展示

夺宝助手2023-02-08

夺宝助手小程序,查看每日快夺宝平

查诚信2023-02-08

查诚信是一款免费的商业查询工具

车价天天报2023-02-08

快速连接汽车销售,获知汽车最新报

考勤助理小程序2023-02-08

上班签到考勤,实时定位,后台轻松

汽车报价大全查询2023-02-08

汽车报价大全查询提供最新汽车市