package com.cl.demo01; //静态代理模式 public class StaticProxy { public static void main(String[] args) { WeddingCompany weddingCompany = new WeddingCompany(new You()); weddingCompany.HappyMarry(); } } interface Marry{ void HappyMarry(); } //真实角色 class You implements Marry{ @Override public void HappyMarry() { System.out.println("king king king"); } } //代理角色 class WeddingCompany implements Marry{ private Marry target; public WeddingCompany(Marry target) { this.target = target; } @Override public void HappyMarry() { before(); this.target.HappyMarry(); after(); } private void after() { System.out.println("结婚之后,收尾款"); } private void before() { System.out.println("结婚之前!"); } } /* 总结: 1.真实对象和代理对象都要事先同一个接口 2.代理对象要代理真实角色 好处: 1.代理对象可以做很多真实对象做不了的事情 2.真实对象专注做自己的事情 * */
package com.cl.lambda; //编导lambda表达式 public class TestLambda { //3.静态内部类 static class Like2 implements ILike{ @Override public void lambda() { System.out.println("I like lambda2"); } } public static void main(String[] args) { ILike like = new Like(); like.lambda(); like = new Like2(); like.lambda(); //4.局部内部类 class Like3 implements ILike{ @Override public void lambda() { System.out.println("I like lambda3"); } } like=new Like3(); like.lambda(); //5.匿名内部类 like=new Like() { @Override public void lambda() { System.out.println("I like lambda4"); } }; like.lambda(); //6.用lambda简化 like=()->{ System.out.println("I like lambda5"); }; like.lambda(); } } //1.定义一个函数式接口 interface ILike{ void lambda(); } //2.实现类 class Like implements ILike{ @Override public void lambda() { System.out.println("I like lambda"); } }
原文:https://www.cnblogs.com/CL-King/p/13681253.html