设计模式---适配器设计模式

设计模式---适配器设计模式

 

什么事适配器:

1. 在使用监听的时候,需要定义一个类事件监听器接口

2. 通常接口中有多个方法,而程序中不一定所有的方法都用到,但又必须重写,很繁琐

3. 适配器简化了这些操作,我们定义监听器只需要继承适配器,然后重写需要的方法即可

适配器原理:

1. 适配器就是一个类,实现了监听器接口,所有的抽象方法都重写了,但是方法全都是空的

2. 适配器类需要定义成抽象的,因为创建该类对象,调用空方法是没有意义的

3.目的是为了简化程序员的操作,定义监听器去继承适配器,只需要重写需要的方法即可。

 

适配器模式:
首先先定义一个和尚的接口:和尚有以下的方法:

再定义一个和尚的适配器去实现和尚这个接口:

鲁智深和唐三藏想调用哪个方法就去实现适配器的哪个方法:

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/558918.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java并发编程实战————售票问题

引言 现有一个需求如下: 有10000张火车票,每张票都有一个编号,同时有10个窗口对外售票,如何确保车票的正常售卖? 程序一:使用List 问题的解决办法都是从我们最最熟悉的角度思考。程序一,我们…

多线程相关知识

多线程相关知识 两个线程进行通信:通过等待(wait)唤醒(notify)机制 三个或三个以上线程进行通信:通过notifyAll()方法 /* * 1. 在同步代码块中,用哪个对象锁&#xff0c…

Eclipse集成PyDev5.2.0开发插件

引言 在进行Python学习的时候,希望不使用IDLE进行开发,但是其他的IDE如PyCharm可能需要一段短暂时间的上手,因为开发过Java,所以使用能够集成到Eclipse上的PyDev插件进行开发应该会好一些。 但是在安装PyDev的时候发生了一些问题…

PostMan 四种常见的 POST 提交数据方式

HTTP/1.1 协议规定的 HTTP 请求方法有 OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE、CONNECT 这几种。其中 POST 一般用来向服务端提交数据,本文主要讨论 POST 提交数据的几种方式。 协议规定 POST 提交的数据必须放在消息主体(entity-body&#xff0…

史上最真实行业鄙视链

本文转载自菜鸟教程的微信公众号,原文链接:https://mp.weixin.qq.com/s/d9cdtq8y4Msq-_ZNof-iuw 引言 作为程序员的一份子,掌握好各个生态系统中的鄙视链,可以写出更加符合改变世界要求的代码。掌握了鄙视链,就掌握了…

权限验证框架Shiro

权限验证框架Shiro: Shiro简介 什么是Shiro: shiro是一个强大易用的Java安全框架,提供了认证,授权,加密,回话管理等功能; 认证(Authentication):用户身份识别…

Mybatis从入门到精通上篇

Mybatis从入门到精通上篇: 学习过的持久层框架:DBUtils , Hibernate Mybatis就是类似于hibernate的orm持久层框架。 Mybatis介绍: Mybatis是面向sql的持久层框架,他封装了jdbc访问数据库的过程,我们开发,只…

Eclipse使用————Working Set工作集

引言 经常看到在设置项目的时候,如导入项目,新建项目等看到对话框的下方有一个“add to working set”复选框,为了弄清这个working set,我们就来好好了解一下Eclipse 的working set功能。 Working Set? Eclipse中通…

Mybatis从入门到精通下篇

Mybatis从入门到精通下篇: 输入类型: 输出类型: ResultMap: 动态sql: if标签: where标签: sql片段: foreach标签: 关联查询: 以订单作为主体: 一…

爱上进制转换练习

引言 对于可能接触到通讯行业或是物联网的开发工作者,一般会面对十进制、二进制、十六进制的转换工作,不仅仅是体现在代码上,有时候也需要用肉眼来进行快速的转化,以获取协议指令中的信息。 今天通过简单的整理,特此…

Sprint Boot————@Qualifier、@Primary

引言 使用Autowired自动注入时: 如果注入的接口有多个实现类,如下所示: 那么如果不指定具体是哪个实现类的Bean,在Spring Boot启动时就会发生异常(下图请点击查看): 异常的描述信息非常简单&am…

SpringMVC教程上篇

SpringMVC教程上篇 SpringMVC优势: SpringMVC代码执行流程: 框架结构: 架构流程: 组件说明: SpringMVC与Mybatis整合 ! 效果: 开发流程:

Eclipse使用————生成Get/Set、toString快捷键(不使用鼠标)

引言 除了鼠标右键空白处—>source选择我们需要的操作之外是否还有更快捷的不需要鼠标的操作呢? 如何快速的通过键盘来生成get、set方法?如何快速的通过键盘生成toString方法?如何快速的通过键盘生成需要实现的父类方法呢? …

SpringMVC教程下篇

SpringMVC教程下篇 内容包括: 绑定数组: 将表单数据绑定到list: RequestMapping注解的三种用法: Controller方法返回值: 乱码问题总结 异常处理: 照片上传: RESTFUL支持&#xff…

Spring Boot面试杀手锏————自动配置原理

引言 不论在工作中,亦或是求职面试,Spring Boot已经成为我们必知必会的技能项。除了某些老旧的政府项目或金融项目持有观望态度外,如今的各行各业都在飞速的拥抱这个已经不是很新的Spring启动框架。 当然,作为Spring Boot的精髓…

为什么要坚持写博客

引言 断断续续地写博客已经有一段时间了,作为一个Java中级开发工程师,工作了三年多也算渐渐入了门。不得不说,博客给我的改变是非常大的,那么作为一个技术人员,为什么我觉得必须要坚持写博客?下面&#xf…

Spring Boot——@ConfigurationProperties与@Value的区别

引言 Spring Boot从配置文件中取值的方式有两种,一种是批量注入ConfigurationProperties,另一种是单独注入Value。 它们之间除了批量与单独取值的区别之外,还存在着其他一些使用方式,本篇博客将详细讲解这两种注解之间的区别和使…

Spring Boot —— YAML配置文件

引言 首先,YAML并不是仅仅可以使用在Java项目中,它是一种类似于json结构的标记语言,可以为所有的编程语言服务。它强调更直观的层级表示,比较适合描述配置文件中的层级关系。 Spring Boot可以识别后缀名为".properties&quo…

centos7下docker启动失败解决

centos7下docker启动失败解决 docker安装成功却启动失败,查看docker服务,systemctl status docker.service, 服务日志提示Failed to start Docker Application Container Engine.如下图所示: 解决方法,修改docker文件&#xff0…

Java并发编程实战————Semaphore信号量的使用浅析

引言 本篇博客讲解《Java并发编程实战》中的同步工具类:信号量 的使用和理解。 从概念、含义入手,突出重点,配以代码实例及讲解,并以生活中的案例做类比加强记忆。 什么是信号量 Java中的同步工具类信号量即计数信号量&#x…