设计模式之我见--4代理模式
本文所写都是自己的理解,可能会有错误,如果有错误请指出。
在编程中我们可能去调用一个自己不能直接访问的类的方法或者类的开发者不想直接将类暴露给用户,这时候一般就可以开发一个被调用类的代理,然后通过控制对这个代理类的访问来控制对实际类的访问。这个代理类同时认识这两个类充当了这两个类之间的桥梁的作用。代理模式是对其他对象提供一种代理以控制对这个对象的访问。
下面通过类比来介绍一下这个模式。有一个GG想追求一个MM,但是她又不认识,这时候就找了一个中间人,这个中间人认识这两个人。这个GG想送这个MM洋娃娃,巧克力,鲜花,但是自己又不敢,所以就找了一个中间人,同样这个中间人也会送洋娃娃,巧克力,鲜花,但是实际执行的是这个MM的方法。
下面看一下这个的类图和代码。
代理类实现与被代理类相同的接口,并且含有一个被代理类的引用,这样就可以使用代理类来代替实体类进行操做了。我们可以在代理类中加入一些对应的逻辑或者相应的权限验证。