代理指的是一个代表另一个角色的角色,就像生活中的红酒制造商,不直接销售葡萄酒零售客户,也通过代理商完成他的销售业务,客户不需要寻找喝红酒的工厂。他们只需要在当地找到制造商的代理商。具体的红酒工厂在那里,顾客不需要关心,代理商会帮助他处理。

代理模式是向对象提供代理对象,并通过代理对象控制特定对象的引用。

代理模式的作用:

抽象主题角色,声明代理主体的公共接口和真实主题,使得任何需要真实主题的地方都可以被代理主题替换。
题元角色,包括真正的参考主题,它可以在任何时候,真正的主题,提供相同的界面剂和主题,真正的主题,这样就可以随时更换的真正主题。代理主题不仅可以通过控股的真正主体参考控制房主题创作或删除,而且拦截的真正主体在调用后调用,或做一些操作。
真正的代理对象定义代理角色表示的特定对象。
参考代码:

复制代码代码如下所示:
< PHP

*代理模式
*
*为其他对象提供代理,以控制对象的访问。
*
* /
接口代理
{
公共功能请求();
公共功能显示器();
}

类是真正的主语
{
公共功能请求()
{
回声是真正的主语的要求;
}

公共功能显示器()
{
回声是真正的主语显示;
}
}

类proxysubject
{
私人_subject美元= null;
公共功能__construct()
{
美元-> _subject =新是真正的主语();
}

公共功能请求()
{
这_subject美元-> ->请求();
}

公共功能显示器()
{
这_subject美元-> ->显示();
}
}

objproxy美元=新proxysubject();
objproxy美元->请求();
objproxy美元->显示();

代理模式的方式是:首先,由于代理主题和真实主题共享一个通用的接口,使得我们可以用代理主题代替原来的主题,而不是改变原来的界面。通过这个平台,我们可以在将客户请求转移到实际主题之前进行必要的预处理。

一个非常常见的代理模式的一个例子是大图片浏览控制。在我们的网站上浏览的文本信息,不知道你有没有注意到,图片放置后降低,当有人想仔细查看图片,可以点击图片激活链接在新页面打开图片。这是提高浏览速度不错,因为不是每个人都有看地图上的信息。这种情况完全可以使用代理模式。在这里,我要表达我的思想。至于实现,由于工作原因没有表示。至于这种方式在B/S模式下的可行性,我还没有证实,只是想象一下,如果不是可行的话,这个例子可以放进一个C/S来实现。这绝对没有问题,它在许多介绍设计模式的书籍和文章中被使用。

We visit the web page in the browser when the method calls are not actual loading pictures, but in the proxy object method in the object, the first use of a thread with a smaller version of the picture to the browser, and in the background to use another thread to call the real loading big picture pictures will be loaded into the local, when you want to browse the pictures, it will be in the new page is displayed.Of course, if the picture is not loaded successfully when you want to browse, you can start a thread to display the prompt information until the load is successful.

这样,代理模式的功能就体现在上面。通过代理将真实图片的操作放在后台,这样不会影响前台浏览,这是非常精辟的。

代理模式可以协调调用者和调用者,可以在一定程度上降低系统的耦合程度,但是我们必须记住使用代理模式之前的条件,否则,使用代理模式不仅会带来好的结果,而且可能会出现一些问题。