java设计模式-代理模式
1.代理(proxy)模式的定义 给某一个对象提供一个代理,并由代理对象控制对原对象的引用。 代理模式主要分为 静态代理 和 动态代理 。 2.代理模式的主要优缺点 优点: 代理模式在客户端与目标对象之间起到一个中介作用和保护目标对象的作用; 代理对象可以扩展目标对象的功能; 代理模式能将客户端与目标对象分离,在一定程度上降低了系统的耦合度; 缺点: 在客户端和目标对象之间增加一个代理对象,会造成请求处理速度变慢; 增加了系统的复杂度; 3.代理模式的主要角色 抽象主题(Subject)类:通过接口或抽象类声明真实主题和代理对象实现的业务方法。 真实主题(Real Subject)类:实现了抽象主题中的具体业务,是代理对象所代表的真实对象,是最终要引用的对象。 代理(Proxy)类:提供了与真实主题相同的接口,其内部含有对真实主题的引用,它可以访问、控制或扩展真实主题的功能。 4.代理模式的结构图 5. 代理模式的实现,以买票为例 静态代理:由程序员编写的代理类,并在程序运行前就编译好了。 动态代理:代理类在程序运行时创建的代理方式被成为动态代理。 5.1 静态代理 创建买票接口 package com.lw.designpattern.proxy.staticproxy; /** * @Classname Ticket * @Description 买票接口 * @Author