您的位置:首页 > 新闻 > 资讯 > 网站开发包括什么_定制手机壳的网站_网络营销服务外包_新闻头条今日新闻下载

网站开发包括什么_定制手机壳的网站_网络营销服务外包_新闻头条今日新闻下载

2025/3/4 21:59:02 来源:https://blog.csdn.net/m0_73892800/article/details/145929742  浏览:    关键词:网站开发包括什么_定制手机壳的网站_网络营销服务外包_新闻头条今日新闻下载
网站开发包括什么_定制手机壳的网站_网络营销服务外包_新闻头条今日新闻下载

目录

简介:

主要结构:

 静态代理代码准备:

公共接口:

目标类:

代理类:

运行测试:

静态代理模式优缺点


简介:

        1.代理模式是为其他对象提供一种代理以控制对这个对象的访问。

        2.代理对象可以在客户端和目标对象之间起到中介的作用,

        3.通过代理对象,客户端可以间接访问目标对象

        4.代理对象可以在访问目标对象前后执行一些额外的操作(新增)。

主要结构:

  • 抽象主题(Subject)接口:代理对象和目标对象的共同接口。这个很重要,他俩要实现同一个接口
  • 真实主题(Real Subject)类(目标对象):定义了代理所代表的真实对象,实现了抽象主题接口,包含了具体的业务逻辑。
  • 代理(Proxy)类(代理对象):实现了抽象主题接口,持有一个真实主题的引用(其中有目标对象的声明),在客户端调用抽象主题接口中的方法时。

 静态代理代码准备:

公共接口:

public interface Service{void add();void delete();void update();void query();
}

目标类:


public class ServiceImpl implements Service{@Overridepublic void add() {System.out.println("add...");}@Overridepublic void delete() {System.out.println("delete...");}@Overridepublic void update() {System.out.println("update...");}@Overridepublic void query() {System.out.println("query...");}
}

代理类:

在这里我新增了一个计算程序运行时长的功能

public class ServiceProxy implements Service{//将目标对象作为代理对象的一个属性,这样比继承的欧俄厚度低private Service target=null;//这就是OrderService//创建代理对象的时候传一个public OrderServiceProxy(OrderService target) {this.target = target;}@Overridepublic void add() {//代理方法//新增long begin = System.currentTimeMillis();//对象的的目标方法target.add();//新增long end = System.currentTimeMillis();System.out.println((end - begin) + "ms");}@Overridepublic void delete() {//代理方法//新增long begin = System.currentTimeMillis();target.modify();//新增long end = System.currentTimeMillis();System.out.println((end - begin) + "ms");}@Overridepublic void update() {//代理方法long begin = System.currentTimeMillis();target.update();long end = System.currentTimeMillis();System.out.println((end - begin) + "ms");}@Overridepublic void query() {//代理方法//新增long begin = System.currentTimeMillis();target.query();//新增long end = System.currentTimeMillis();System.out.println((end - begin) + "ms");}}

运行测试:

public class Test {public static void main(String[] args) {//创建目标对象Service target = new ServiceImpl();//创建代理对象并传入目标对象Service ServiceProxy = new ServiceProxy(target);//调用代理ServiceProxy.generate();ServiceProxy.modify();ServiceProxy.detali();}
}

静态代理模式优缺点

优点:

        1.新增功能时遵守了ocp开闭原则

        2.使用关联关系将目标对象注入代理对象,大大减小了代码的耦合度

缺点:

        一个代理对象只能管理一个目标对象,要是目标对象多了这很容易形成类爆炸

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com