用一个代理类将被代理类和别的类分离开,外面的类想访问被代理的类,要走代理类中转。
为什么要控制对对象的访问?
一方面,为了节约资源。站在迪米特法则的角度看,如果对于一个非常耗资源的大型对象,如果所有的客户端不管是否使用都去初始化这个对象其实是非常耗资源的。
另一方面,为了系统安全。假设我没有一个可以在系统上运行的命令类,我们正常使用它没有问题,但如果我们想将此程序提供给客户端应用程序,它可能会出现严重问题,因为客户端程序可以发出命令来删除一些系统文件或更改一些您不想要的设置。
优缺点
优点:可以在客户端不知道的情况下控制服务对象,在客户端与目标对象之间起到一个中介作用和保护目标对象的作用,还可以对目标对象的操作做扩展。
缺点:代理模式会造成系统设计中类的数量增加,增加了系统的复杂度;可能会造成请求处理速度变慢
标签:对象,系统,代理,模式,目标,客户端 From: https://www.cnblogs.com/mcyushao/p/17904013.html