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

day40 设计模式、jdk8新特性

一、代理模式

为其他对象提供一种代理控制此对象的访问

若一个对象不适合直接引用另一个对象,

代理对象在客户端和目标对象之间起到中介作用

组成:

抽象角色:通过接口 抽象类 真实角色实现了哪些方法

代理角色:实现抽象角色,是真实角色的代理,通过真实角色的业务逻辑方法来实现抽象方法

可以附加自己的操作

真实角色:实现抽象角色,定义业务逻辑,供代理角色来调用

  1. 代理模式分类

    • 静态代理

    • 动态代理

      • JDK动态代理

      • cglib动态代理

  2. 静态代理: 抽象角色固定, 代理角色和代理的真实角色是固定。

  3. 动态代理

    通过反射机制来实现的,代理角色不在是固定的角色,而是一个通用的工具类,还可以代理很多操作

动态代理是在静态代理的基础上,代理的真实角色由设置好的固定的一个变成自由的多个,实现更广泛的应用。

动态代理的代理角色类Proxyutil需要实现接口InvocationHandler

二、原型模式

原型模式用于创建重复对象 保证性能  这种类型的设计属于创建创建型模式

方式是有一个原型接口

三、JDK8新特性

支持Lambda表达式:是一种特殊的匿名内部类形式,语法更加简洁

允许把函数作为一个方法的参数,将代码像数据一样进行传递

基本语法:

函数式接口 变量名 =  (参数,参数)—> {方法体}

注意事项:

形参列表数据类型会自动推断

如果形参列表为空,只需要保留()

如果形参只有一个,()可以省略,只需要参数名即可

如果执行的代码只有一句话且无返回值 { }可省略,

四、函数式接口

如果一个接口只有一个抽象方法 该接口称之为函数式接口

函数式接口可以使用Lambda,lambda表达式会自动匹配到这个抽象方法上

@FunctionalInterface

常见的函数式接口:

Consumer消费型接口

Supplier供给型接口

Function函数型接口

Predicate

五、方法引用

方法应用是Lambda表达式的一种简写形式。如果lambda表达式只是调用类哦个的定的已经存在的方法、

http://www.lryc.cn/news/166375.html

相关文章:

  • 【数据结构】链表C++编写的,它定义了一个链表,并实现了一些基本的链表操作,如创建新节点、插入节点、清空链表、输出链表以及查找节点
  • 浏览器面试题
  • Java Controller层异常处理示例【含面试题】
  • 通过Git Bash将本地文件上传到本地github
  • 继承的笔记
  • Android7.1 ROOT权限的获取
  • 几个好用的数据标注软件labelme、CVAT及LabelImage
  • VSCode学习笔记一:添加代码模板
  • Linux下修改jar包中的配置文件application.conf
  • 【python绘图—colorbar操作学习】
  • Python+Appium自动化测试-编写自动化脚本
  • AMEYA360|ROHM罗姆首次推出硅电容器BTD1RVFL系列
  • Linux发散小知识
  • GTS 中testPeakPssOfAllApps fail 详解
  • linux查看远程仓库的分支
  • 【Linux常用命令】
  • QString类与整型,浮点数互转
  • 基于STM32F407ZET6的环境温湿度监控系统(粤嵌GEC-M4)
  • 2023年五一杯数学建模A题无人机定点投放问题求解全过程论文及程序
  • Redis 7 第九讲 微服务集成Redis 应用篇
  • c++day7
  • C++学习概述
  • 关系型数据库和非关系型数据库
  • 基于SSM的快餐店点餐服务系统设计与实现
  • 使用vcpkg配置CGAL+visual studio 2022
  • 【Spring面试】三、Bean的配置、线程安全、自动装配
  • flink连接kafka报:org.apache.kafka.common.errors.TimeoutException
  • sql order by 排序 null值放最后,怎么写
  • HDMI字符显示实验
  • Spring Cloud 框架搭建