`

javase模式3

阅读更多

十。代理模式:

   代理模式总的来说就是控制对象的访问。

  分为:远程代理,虚拟代理,保护代理

  远程代理:

           当你要取的别的JVM上的对象的来进行操作的时候。本地和远程对象在本地的一个虚拟对象进行访问,虚拟对象通过网络传给远程对象在它本地的一个虚拟对象,远程的虚拟对象再和具体的远程对象进行交互。rmi可实现这些步骤。

虚拟代理:

           当你在一个画面上要显示一幅画的时候,可能这幅画很大,要很长时间才能从网络上下载下来。这个时候你不想自己的界面显示停止,可以用到虚拟代理,当图片正在下载的时候,显示 “正在下载中”,当下载完成的时候 则显示图片。

当没有下载完成时,虚拟代理充当图片的角色

保护代理:

   你要访问的对象必须经过一个代理去转发。Java有内置的实现。

 

大致说下代理的类图结构:

                     

                          interface

                          doSomething()

 

                           ^             ^

                           |              |

                   实现  |       实现 |

                           |              |

                    具体实例       代理

 

                          ^              |

                           |              |有一个实例

                            ------------

这样的类图结构可以让访问具体实例的对象都可以访问代理,因为具体对象和代理实现了同一个接口

你可能说这和适配器模式不是差不多么,适配器模式实现了2个不同的接口,而代理实现了一个相同的接口。

 而java的内置的代理和这个有点区别,

                 接口 代理和真实对象都实现这个接口,代理现在不拥有一个真实对象的引用,而是拥有一个继承自invocationHandler接口的类,而这个类拥有一个真实对象的引用。

复合模式:

    就是很多模式在一起合作,典型的复合模式是mvc

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics