线程---静态代理模式

静态代理模式

package com.xxgc.demo02;

//模拟婚庆公司代理结婚
//静态代理模式总结:
//真实对象和代理对象都要实现同一个接口
//代理对象要代理真实角色

//好处:
//代理对象可以做很多真实对象做不了的事情
//真实对象专注做自己的事情
public class StacticProxy {
   public static void main(String[] args) {

       You you = new You(); //你要结婚
       //线程做法
       //new Thread( ()-> System.out.println("我爱你!")).start();
       //new WeddingCompany(new You()).HappyMarry();

       WeddingCompany weddingCompany = new WeddingCompany(you);
       //WeddingCompany weddingCompany = new WeddingCompany(new You());
       weddingCompany.HappyMarry();
  }
}

interface Marry{
   //方法 结婚
   void HappyMarry();
}

//真实角色,你去结婚
class You implements Marry{
   @Override
   public void HappyMarry() {
       System.out.println("moran要结婚了,很开心!!!");
  }
}

//代理角色,帮助你结婚
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("结婚之前,布置婚礼场地!");
  }
}

大学实例

package com.xxgc.demo03;

public class TestStatic {
   public static void main(String[] args) {
       You you = new You();
       //Brother brother = new Brother(you);
       //brother.FuckStudy();

       //线程方法 并用lambda方法
       new Thread( ()-> System.out.println("我好难受啊!!!")).start();
       new Brother(new You()).FuckStudy();
  }
}

//学习接口 草 学习
interface Study{
   void FuckStudy();
}

class You implements Study{

   @Override
   public void FuckStudy() {
       System.out.println("你好难受,作业没写完!努力补作业中...");
  }
}

class Brother implements Study{
   private Study target;

   public Brother(Study target) {
       this.target = target;
  }
   @Override
   public void FuckStudy() {
       before();
       this.target.FuckStudy();
       after();
  }

   private void after() {
       System.out.println("补作业之后,叫室友一起帮忙补作业!!!");
  }

   private void before() {
       System.out.println("补作业之前,叫室友帮忙带份饭!!!");
  }
}

解决IDEA报错:Lambda expressions not supported at language level '7'

这是因为项目选择的Java版本不是Java8,自然不支持Java8的Lambda 表达式

选择FileProject StructureProject, 修改Level 到8 - Lambdas, type annotations etc. 在这里插入图片描述 如果没有解决问题,那么把Modules中也改为java 8 在这里插入图片描述

如果还没有解决问题, File --> Settings -->Build, Execution, Deployment Compiler --> Java Compiler,更改版本为Java 8: 在这里插入图片描述

 

posted @ 2020-09-18 17:23  墨染念颖  阅读(131)  评论(0)    收藏  举报