多執行緒:靜態代理模式,lambad表示式 匿名函式
阿新 • • 發佈:2020-09-16
靜態代理模式
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 implementsMarry{ @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.真實物件專注做自己的事情 * */
編導lambda表示式
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"); } }