当前位置: 首页 > news >正文

web网站开发里怎么切换界面/神马搜索seo优化排名

web网站开发里怎么切换界面,神马搜索seo优化排名,做网站 做推广需要知道什么,网站工具查询一、定义: 为其他对象提供一种代理以控制对这个对象的访问。 二、角色组成: Subject抽象主题:声明真是主题与代理的共同接口方法,可以是一个抽象类或接口。 RealSubject真实主题:定义了代理表示的真实对象&#xff0c…

一、定义:

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

二、角色组成:

        Subject抽象主题:声明真是主题与代理的共同接口方法,可以是一个抽象类或接口。

        RealSubject真实主题:定义了代理表示的真实对象,执行具体的逻辑和方法。

        ProxySubject代理:持有对真实主题的引用,实现接口方法中调用真实主题对应的接口方法。

        Client客户:使用代理的示例,通过调用代理的方法来实现对真实主题的调用。

三、代理类型:

        1.静态代理:手动创建代理类直接持有目标对象的引用。

        2.动态代理:运行时动态生成代理类,如JDK的动态代理,CGLIB等。

        3.远程代理:跨进程通信的代理,如Android的AIDL机制。

四、简单实现:

静态代理

        1.抽象主题

public interface FileLoader {
    String readFile(String path);
}
        2.真实主题

public class RealFileLoader implements FileLoader {
    @Override
    public String readFile(String path) {
        // 模拟读取文件内容
        return "File content: " + path;
    }
}
        3.代理

public class FileLoaderProxy implements FileLoader {
    private RealFileLoader realFileLoader;
    private boolean hasPermission;

    public FileLoaderProxy(boolean hasPermission) {
        this.hasPermission = hasPermission;
    }

    @Override
    public String readFile(String path) {
        // 延迟初始化真实对象
        if (realFileLoader == null) {
            realFileLoader = new RealFileLoader();
        }

        // 权限校验
        if (!hasPermission) {
            return "Error: Permission denied!";
        }

        // 调用真实对象方法
        return realFileLoader.readFile(path);
    }
}
        4.客户端调用

public class Main {
    public static void main(String[] args) {
        // 有权限的用户
        FileLoader proxy1 = new FileLoaderProxy(true);
        System.out.println(proxy1.readFile("/data/test.txt")); 
        // 输出:File content: /data/test.txt

        // 无权限的用户
        FileLoader proxy2 = new FileLoaderProxy(false);
        System.out.println(proxy2.readFile("/data/secret.txt")); 
        // 输出:Error: Permission denied!
    }
}


动态代理

        1.抽象主题

public interface DataService {
    void saveData(String data);
    void deleteData(String id);
}
        2.真实主题

public class RealDataService implements DataService {
    @Override
    public void saveData(String data) {
        System.out.println("Saving data: " + data);
    }

    @Override
    public void deleteData(String id) {
        System.out.println("Deleting data with ID: " + id);
    }
}
        3.动态代理执行

public class LoggingHandler implements InvocationHandler {
    private Object target; // 目标对象

    public LoggingHandler(Object target) {
        this.target = target;
    }

    @Override
    public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
        // 记录调用日志
        System.out.println("Method called: " + method.getName());
        if (args != null) {
            System.out.println("Arguments: " + Arrays.toString(args));
        }

        // 调用真实对象方法
        Object result = method.invoke(target, args);

        // 记录返回结果
        System.out.println("Method completed: " + method.getName());
        return result;
    }
}
        4.生成动态代理调用

public class Main {
    public static void main(String[] args) {
        // 创建真实对象
        DataService realService = new RealDataService();

        // 创建动态代理
        DataService proxy = (DataService) Proxy.newProxyInstance(
            realService.getClass().getClassLoader(),
            realService.getClass().getInterfaces(),
            new LoggingHandler(realService)
        );

        // 通过代理调用方法
        proxy.saveData("Hello, Proxy!");
        proxy.deleteData("123");
    }
}


五、优缺点

优点:

        1.控制对象访问,增强安全性。

        2.支持延迟加载,优化性能。

        3.解耦客户端与目标对象

缺点:

        1.增加代码复杂度,需要额外增加代理类。

        2.动态代理可能降低运行效率。

        3.远程代理需要处理网络或跨进程问题。

http://www.whsansanxincailiao.cn/news/31940832.html

相关文章:

  • 昆明网站建设外包/东莞网络优化调查公司
  • 网站源码上传到空间以后怎么做/交换链接的其它叫法是
  • 做网站浏览器/网站优化seo怎么做
  • 山东嘉邦家居用品公司网站 加盟做经销商多少钱 有人做过吗/互联网营销培训平台
  • 网站群管理平台建设/合肥seo整站优化网站
  • 品牌网站建设流程图/重庆seo多少钱
  • 光谷网站建设公司/我是站长网
  • 网站集约化建设的总体情况/网站建设及推广优化
  • 网站排名不可有利就前/百度招商加盟推广
  • 群英云服务器/江阴网站优化公司
  • 网站是怎么做/肇庆seo按天收费
  • 怎么做亚马逊网站/产品推广图片
  • 外贸网站支付系统/网络优化排名培训
  • 建设网站的公司济南兴田德润o简介图片/优化什么意思
  • 建程网的工程可靠吗/南宁seo排名外包
  • 成都 做网站 模版/中国最新军事新闻最新消息
  • wordpress建设网站的方法/不受国内限制的浏览器下载
  • wordpress添加flash/郑州谷歌优化外包
  • 网站底部设计/店铺运营
  • 门户网站推广/上海全网营销推广
  • 公司网站开发方案/宁波seo关键词排名优化
  • 深圳好的网站建设公司哪家好/身边的网络营销案例
  • 专业的平面设计网站有哪些/数字营销
  • 广州一次做网站/赣州seo唐三
  • 温州网站制作案例/全网搜索关键词查询
  • 网站建设结课策划书/一级域名生成二级域名
  • 如何把省市县三级下拉菜单弄到网站的在线表单内/常见的营销方式有哪些
  • 在个人网站上做电商营业执照/百度竞价关键词质量度怎么提升
  • 做seo要明白网站内/软文广告经典案例200字
  • 公司的网络规划与设计/外贸seo软文发布平台