南昌的网站建设公司,看资源的浏览器有哪些,网站制作超链接怎么做,张家港微网站静态代理模式总结(线程底部原理)
真实对象和代理对象都要实现同一个接口代理对象要代理真实角色好处#xff1a; - 代理对象可以做很多真实对象做不了的事情 - 真实对象专注做自己的事情创建静态代理模式#xff1a;一个接口#xff08;当前创建为函数式接口#xff08;只…静态代理模式总结(线程底部原理)
真实对象和代理对象都要实现同一个接口代理对象要代理真实角色好处 - 代理对象可以做很多真实对象做不了的事情 - 真实对象专注做自己的事情创建静态代理模式一个接口当前创建为函数式接口只包含唯一一个抽象方法可以使用Lambda表达式简化代码真实角色实现抽象类代理角色实现抽象类代理方法实现构造方法调用抽象方法
package com.zeng.demo01;
//静态代理模式总结(线程底部原理)
//真实对象和代理对象都要实现同一个接口
//代理对象要代理真实角色
//好处//代理对象可以做很多真实对象做不了的事情//真实对象专注做自己的事情
public class StacticProxy {public static void main(String[] args) {//Lambda表达式避免匿名内部类定义过多其实质属于函数式编程的概念//去掉一些没有意义的代码只留下核心代码//当前接口为函数式接口任何一个接口如果只包含唯一一个抽象方法那么他就是一个函数式接口,可以通过Lambda表达式来创建该接口的对象new Thread(()- System.out.println(I love you)).start();new WeddingCompany(new You()).HappyMarry();// You you new You();
//
// WeddingCompany weddingCompany new WeddingCompany(you);
// weddingCompany.HappyMarry();}
}
interface Marry{void HappyMarry();
}
//真实角色你做的事
class You implements Marry{Overridepublic void HappyMarry() {System.out.println(hello world);}
}
//代理角色帮助你做一些事
class WeddingCompany implements Marry{private Marry target;//构造方法public WeddingCompany(Marry target){this.targettarget;}Overridepublic void HappyMarry() {before();this.target.HappyMarry();after();}private void after() {System.out.println(操作二收尾款);}private void before() {System.out.println(操作一布置现场);}
}