代理模式
2015-08-05 23:22
218 查看
一、概述
自己不亲自做,找代理对象来实现,节约资源。
比如我很忙,忙的没空理你,那你要找我呢就先找我的代理人吧,那代理人总要知道被代理人能做哪些事情不能做哪些事情吧,那就是两个人具备同一个接口,代理人虽然不能干活,但是被代理的人能干活呀。
二、结构示意图
三、买东西实现代码
比如我要买一个手机,那么我需要找代理商帮我去买。那么久包含了,我子类、代理商类、然后我们两个类需要实现相同的接口。
同时在代理商类中调用自己
代码如下:
public class Test
{
//
客户端代码
public static void main(String
argv[]) {
[align=left] ProxyBuy pb = new ProxyBuy();[/align]
[align=left] pb.buy();[/align]
[align=left] }[/align]
[align=left]
[/align]
[align=left]}[/align]
[align=left]
[/align]
interface Buy
{
[align=left] public void buy();[/align]
[align=left]}[/align]
[align=left]
[/align]
class WoBuy implements Buy
{
[align=left]
[/align]
[align=left] @Override[/align]
public void buy()
{
System. out.println("我要买Iphone
6手机!" );
[align=left]
[/align]
[align=left] }[/align]
[align=left]
[/align]
[align=left]}[/align]
[align=left]
[/align]
class ProxyBuy implements Buy
{
[align=left] private WoBuy wb = new WoBuy();[/align]
[align=left]
[/align]
[align=left] @Override[/align]
public void buy()
{
[align=left] wb.buy();[/align]
[align=left]
[/align]
[align=left] }[/align]
[align=left]}[/align]
自己不亲自做,找代理对象来实现,节约资源。
比如我很忙,忙的没空理你,那你要找我呢就先找我的代理人吧,那代理人总要知道被代理人能做哪些事情不能做哪些事情吧,那就是两个人具备同一个接口,代理人虽然不能干活,但是被代理的人能干活呀。
二、结构示意图
三、买东西实现代码
比如我要买一个手机,那么我需要找代理商帮我去买。那么久包含了,我子类、代理商类、然后我们两个类需要实现相同的接口。
同时在代理商类中调用自己
代码如下:
public class Test
{
//
客户端代码
public static void main(String
argv[]) {
[align=left] ProxyBuy pb = new ProxyBuy();[/align]
[align=left] pb.buy();[/align]
[align=left] }[/align]
[align=left]
[/align]
[align=left]}[/align]
[align=left]
[/align]
interface Buy
{
[align=left] public void buy();[/align]
[align=left]}[/align]
[align=left]
[/align]
class WoBuy implements Buy
{
[align=left]
[/align]
[align=left] @Override[/align]
public void buy()
{
System. out.println("我要买Iphone
6手机!" );
[align=left]
[/align]
[align=left] }[/align]
[align=left]
[/align]
[align=left]}[/align]
[align=left]
[/align]
class ProxyBuy implements Buy
{
[align=left] private WoBuy wb = new WoBuy();[/align]
[align=left]
[/align]
[align=left] @Override[/align]
public void buy()
{
[align=left] wb.buy();[/align]
[align=left]
[/align]
[align=left] }[/align]
[align=left]}[/align]
相关文章推荐
- CodeForces 85D Sum of Medians(线段树 + 离散化)
- strchr strstr (判断 子字符(串))
- perl应用:一些perl例(不断更新中ing........)
- Auto Layout
- Provided id of the wrong type for class
- 怎样快速学习一门新技术?
- PHP扩展的基本结构
- web前端的成长之路(START)
- Quartz2D-07.利用Quartz实现自定义截图效果
- 取石子游戏(hdu1527+威佐夫博弈)
- Nginx 笔记与总结(8)Location:归纳总结
- CSS3样式工具箱
- 简单工厂模式
- 电磁学教学日历
- 如此抄袭Apps之OscHub(三)
- OpenGL着色器语言4.1.7.2(图片类型)-4.1.8(结构体类型)
- 股票接口
- iOS开发之CocoaAsyncSocket学习
- TCP/IP Socket HTTP
- win7 升级到win10 注意事项