当前位置:首页 > CN2资讯 > 正文内容

Java 静态代理java静态代理和动态代理

7小时前CN2资讯
1、介绍。

        先创建java代码,再进行编译。在运行前,代理类的.class文件已存在。事先知道要代理的是什么,通常只代理一个类。

        优点:不需要知道委托类(实现类),只需知道代理即可。

        缺点:(1)代码重复。代理类和委托类(实现类)实现了相同的接口。
                   (2)维护复杂。接口增加一个方法,代理类和委托类(实现类)都需要实现此方法。
                   (3)不灵活。代理类和委托类(实现类)的关系为一对一,无法一对多。

2、代码。Proxy.java、StaticProxyInherit.java、StaticProxy.java、UserServiceImpl.java、IUserService.java、User.java。

package com.zxj.test.proxy;

import com.zxj.dao.entity.User;
import com.zxj.dao.service.impl.UserServiceImpl;

public class Proxy {
    private static void staticProxy() {
        User user = new User();
        user.setAge(11);
        user.setName("卓小杰");

        //继承委托类(实现类)的方式
        StaticProxyInherit staticProxyInherit = new StaticProxyInherit();
        staticProxyInherit.printInfo(user);

        //实现接口的方式
        StaticProxy staticProxy = new StaticProxy(new UserServiceImpl());
        staticProxy.printInfo(user);
    }

    public static void main(String[] args) {
        staticProxy();
    }
}
package com.zxj.test.proxy;

import com.zxj.dao.entity.User;
import com.zxj.dao.service.impl.UserServiceImpl;

public class StaticProxyInherit extends UserServiceImpl {
    @Override
    public void printInfo(User user) {
        System.out.println("before to do someThing");
        super.printInfo(user);
        System.out.println("after to do someThing");
    }
}
package com.zxj.test.proxy;

import com.zxj.dao.entity.User;
import com.zxj.dao.service.IUserService;
import com.zxj.dao.service.impl.UserServiceImpl;

public class StaticProxy implements IUserService {
    private UserServiceImpl userService;

    public StaticProxy(UserServiceImpl userService) {
        this.userService = userService;
    }

    @Override
    public void printInfo(User user) {
        System.out.println("before to do someThing");
        userService.printInfo(user);
        System.out.println("after to do someThing");
    }
}
package com.zxj.dao.service.impl;

import com.zxj.dao.entity.User;
import com.zxj.dao.service.IUserService;

public class UserServiceImpl implements IUserService {
    @Override
    public void printInfo(User user) {
        System.out.println(String.format("%s已经%d岁了", user.getName(), user.getAge()));
    }
}
package com.zxj.dao.service;

import com.zxj.dao.entity.User;

public interface IUserService {
    void printInfo(User user);
}
package com.zxj.dao.entity;

public class User {
    private String name;
    private int age;

    public User(){

    }

    public User(String name, int age) {
         = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
         = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}
3、结果。
<ignore_js_op> 
    你可能想看:

    扫描二维码推送至手机访问。

    版权声明:本文由皇冠云发布,如需转载请注明出处。

    本文链接:https://www.idchg.com/info/32112.html

    分享给朋友:

    “Java 静态代理java静态代理和动态代理” 的相关文章

    不限制流量套餐:选择适合你的最佳电信方案

    在我们这个信息高速发展的时代,手机成为了我们日常生活中不可或缺的一部分。而随着视频、游戏和社交媒体等应用的流行,很多用户的流量需求逐渐增加。这也促使电信运营商们纷纷推出了“不限流量套餐”,以满足用户对流量的广泛需求。 简单来说,不限流量套餐意指用户可以在一个月内不限流量使用手机数据,虽然很多套餐背后...

    甲骨文与云技术的创新研究探索

    甲骨文的概述 我一直对甲骨文充满兴趣,它不仅是中国古代文字的起源之一,也在历史发展中扮演了重要角色。甲骨文的起源可以追溯到公元前14世纪的商朝晚期,当时的一些卜辞记录在龟甲和兽骨上,这成为了我们了解古代社会、文化和宗教信仰的重要窗口。通过这些文字,我感受到那种历史的厚重感,仿佛能够穿越时间与古人对话...

    探索VPS论坛:获取信息与技术交流的最佳平台

    在当今的数字时代,VPS(虚拟专用服务器)论坛扮演着一个重要的角色。作为技术爱好者和学习者交流的平台,这些论坛不仅提供了丰富的信息资源,还促成了用户之间的互动。我最喜欢的就是能在这样的社区中找到志同道合的朋友,讨论各种技术问题和经验。 VPS论坛的定义和特点非常明确。它们通常是一个集中讨论虚拟专用服...

    BBR加速开启:提升网络性能的最佳实践

    什么是BBR? 在网络领域,BBR(Bottleneck Bandwidth and Round-trip propagation time)是一个备受关注的TCP拥塞控制算法,由Google开发的这一技术,旨在提升网络连接的传输速率和稳定性。BBR独特之处在于,它通过实时监测数据包的传输时延与丢包...

    如何在宝塔面板上安装和配置Node.js的详细指南

    宝塔面板是一个非常便捷的服务器管理工具,专为简化网站管理而设计。无论是网站的搭建,还是后期的维护,宝塔面板都能够提供一系列友好的功能和工具,使得用户即使没有专业的技术背景,也能轻松上手。它允许用户通过Web界面对服务器进行管理,安装软件和配置环境,简直就是一个“傻瓜式”的的操作平台。 谈到宝塔面板,...

    AS4134:全球互联网中的自主系统与数据传输的未来

    什么是AS4134? AS4134是一个全球互联网中的自治系统编号,这个编号用于标识网络中的各种自治系统。让我简单说一下,自治系统可以被理解为单一的网络或网络集合,在运行自己的路由协议时相对独立。AS4134作为其中的一部分,协助数据在互联网中高效而安全地传输。当你在网上冲浪时,实际上是在通过多个这...