开发者学堂课程【Java 高级编程:静态代理设计模式】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/20/detail/393
静态代理设计模式
简介:
1、具体内容:
2、传统代理设计模式的弊端
具体内容:
代理设计模式是在程序开发之中使用最多的设计模式,代理设计模式的核心是有真实业务实现类与代理业务实现类,并且代理类要完成比真实业务更多的处理操作。
传统代理设计模式的弊端:
所有的代理设计模式如果按照设计要求来讲,必须是基于接口的设计,也就是说需要首先定义出核心接口的组成,下面模拟一个消息发送的代理操作结构。
范例:传统代理设计
package cn.mldn.demo;
interface IMessage il/传统代理设计必须有接口
public void send() ; l/业务方法
}
class MessageReal implements IMessage {
@override
public void send() i
system.out.println("【发送消息】www.mldn.cn" );
class MessageProxy implements IMessage {//代理类
private IMessage mes.sage ; //代理对象,一定是业务接口实例
public MessageProxy ( IMessage message){
this.message = message ;
}
@override
public void send( ) {
//TODO Auto-generated method stub
}
}
public class avaAPIDemo {
public static void main(String[] args ) throws Exception {
以上的操作代码是一个最为标准的代理设计,但是如果要进一步的去思考会发现客户端的接口与具体的子类产生的耦合问题,所以这样的操作如果从实际的开发来讲最好再引入工厂设计模式进行代理对象的获取。
以上的代理设计模式为静态代理设计,这种静态代理设计的特点在于:一个代理类只为一个接口服务,那么如果说现在准备出了 3000 个业务接口,则按照此种做法就意味着需要编写 3000 个代理类,并且这 3000 个代理类的操作形式类似。
所以现在需要解决的问题在于:如何可以让一个代理类满足于所有的业务接口。