静态代理设计模式

Posted sunzhongyu008

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了静态代理设计模式相关的知识,希望对你有一定的参考价值。

静态代理模式,实现两个子类:代理子类、真实业务子类。

 1 package com.proxy.demo;
 2 
 3 public class SimpleProxy 
 4     public static void main(String[] args) 
 5         IMessage msg = new MessageProxy(new MessageReal());
 6         msg.send();
 7     
 8 
 9 
10 interface IMessage
11     public void send();
12 
13 class MessageReal implements IMessage
14     public void send() 
15         System.out.println("【消息发送】www.proxy.com");
16     
17 
18 class MessageProxy implements IMessage
19     private IMessage message;
20     public MessageProxy(IMessage message) 
21         this.message = message;
22     
23     public boolean connect() 
24         System.out.println("【消息代理】进行消息通道连接");
25         return true;
26     
27     public void send() 
28         if(connect()) 
29             this.message.send();
30             this.close();
31         
32     
33     public void close() 
34         System.out.println("【消息代理】消息通道连接关闭");
35     
36 

运行结果:

【消息代理】进行消息通道连接
【消息发送】www.proxy.com
【消息代理】消息通道连接关闭

 静态代理模式缺点:

  1.一个代理类只能为一个接口服务;

  2.客户端的接口与具体的子类产生耦合。

在实际开发中,最好引入工厂模式进行代理对象的获取。

 

以上是关于静态代理设计模式的主要内容,如果未能解决你的问题,请参考以下文章

设计模式-静态代理

设计模式一静态代理模式

设计模式代理模式:静态代理,动态代理,spring aop

Java 设计模式之代理模式,Java 静态代理,Java 动态代理

设计思想与模式之四静态代理模式

设计模式 结构型模式 -- 代理模式(代理模式概述结构静态代理动态代理)