静态代理设计模式

2019-08-16 10:53:16来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

静态代理设计模式

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

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

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

 


原文链接:https://www.cnblogs.com/sunzhongyu008/p/11223743.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Spring Cloud中Hystrix、Ribbon及Feign的熔断关系是什么?

下一篇:获取类的类对象的几种方式