静态代理设计模式

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

 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.客户端的接口与具体的子类产生耦合。

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

 

点赞