龙岩网站建设大概费用系部网站建设需求分析运行需求

news/2025/9/22 19:28:20/文章来源:
龙岩网站建设大概费用,系部网站建设需求分析运行需求,在线网站流量查询,响应式网站源代码适配器模式(AdapterPattern, 结构型模式) 用最通俗的讲法就是: 将多个功能相关或不相关的接口( 你需要的接口 )放到同一个实现类里, 构造一个具有多工功能, 多特点的异类对象 定义 是作为多个接口之间的桥梁,结合多个独立的接口(将多个类/功能结合在一起,构建出一…适配器模式(AdapterPattern, 结构型模式) 用最通俗的讲法就是: 将多个功能相关或不相关的接口( 你需要的接口 )放到同一个实现类里, 构造一个具有多工功能, 多特点的异类对象 定义 是作为多个接口之间的桥梁,结合多个独立的接口(将多个类/功能结合在一起,构建出一个可以产生需要的对象的适配器) 角色关系 多个独立的接口及其实现类, 适配器(实现这多个目标接口) 优点 可以让多个个没有关系的接口/类一起运行, 提高类的复用性, 增加类的灵活性 缺点 过多使用适配器造成系统凌乱, 例如:表面上使用A接口,适配器却将A改为B接口,造成接口使用的混乱, 因此如果不是有必要的, 可以不使用适配器, 而是直接对系统重构 由于java单继承, 当适配类的时候, 只能适配一个类(为抽象类); 注: 适配器主要是用与解决正在服役的项目的问题, 不是在类详细设计的时候添加 (使用适配器, 构造出一个我们想要的对象, 解决燃眉之急) 实现方式 一般通过适配器继承或者以来已有对象, 实现想要的目标接口 代码演示: 例1 将播放MP4与VCL的播放器进行适配, 构建一个既能播放MP4, 又能放VCL的播放器 package com.AdapterPattern; /*** 1、系统需要使用现有的类而此类的接口不符合系统的需要。* 2、想要建立一个可以重复使用的类用于与一些彼此之间没有太大关联的一些类包括一些可能在将来引进的类一起工作这些源类不一定有一致的接口。* 3、通过接口转换将一个类插入另一个类系中。* author regotto**/ public class AdapterPatternDemo1 {public static void main(String[] args) {AudioPlayer apnew AudioPlayer();ap.play(mp3, 1号文件);ap.play(vcl, 2号文件);ap.play(mp4, 3号文件);} }//最高级的播放器 interface MediaPlayer{public void play(String audioType,String fileName); }//实现MediaPlayer, 可播放mp3, 调用视屏播放的适配器,达到播放mp4, vcl的目的 class AudioPlayer implements MediaPlayer{MediaAdapter manull;Overridepublic void play(String audioType, String fileName) {if(audioType.equals(mp3)) System.out.println(Playing:fileName);else if(audioType.equals(vcl) || audioType.equals(mp4)) {manew MediaAdapter(audioType);ma.play(audioType, fileName);}else System.out.println(文件格式未识别);} }//播放器适配器(抽取出相同的特性进行适配), 将vcl mp4的播放进行适配, 得到一个既能放VCL又能放MP4的一个播放器 class MediaAdapter implements MediaPlayer{AdvanceMediaPlayer ampnull;public MediaAdapter(String audioType) {if(audioType.equals(vcl)) {ampnew VlcPlayer();}else if(audioType.equals(mp4)) {ampnew Mp4Player();}}Overridepublic void play(String audioType, String fileName) {if(audioType.equals(vcl))amp.playVlc(fileName);else if(audioType.equals(mp4))amp.playMp4(fileName);}}//播放VCL, MP4, VCL/MP4通过相同的接口实现,具有一定的共同特征 interface AdvanceMediaPlayer{void playVlc(String fileName);void playMp4(String fileName); } class VlcPlayer implements AdvanceMediaPlayer{Overridepublic void playVlc(String fileName) {System.out.println(Playing: fileName);}Overridepublic void playMp4(String fileName) {} } class Mp4Player implements AdvanceMediaPlayer{Overridepublic void playMp4(String fileName) {System.out.println(Playing: fileName);}Overridepublic void playVlc(String fileName) {} }例2 使用老虎对象, 与fly接口, 通过适配器构造一个飞虎对象 package com.AdapterPattern;public class AdapterPatternDemo2 {public static void main(String[] args) {new AnimalAdapter(new Tiger(Atiger, 东北虎)).fly();}}//飞虎 class AnimalAdapter implements Flying{private Animal animal;public AnimalAdapter(Animal animal) {this.animal animal;}Overridepublic void fly() {animal.behavior();System.out.println(I can fly);} }abstract class Animal{protected String name;protected String animalType;abstract public void behavior();public String getName() {return name;}public void setName(String name) {this.name name;}public String getAnimalType() {return animalType;}public void setAnimalType(String animalType) {this.animalType animalType;}} //老虎 class Tiger extends Animal{public Tiger() {}public Tiger(String name, String animalType) {this.name name;this.animalType animalType;}Overridepublic void behavior() {System.out.println(name--animalType--森林之王);} } interface Flying{void fly(); } //鸟 class Bird extends Animal implements Flying{Overridepublic void behavior() {System.out.println(name--animalType);fly();}Overridepublic void fly() {System.out.println(I can fly);} }结语: 适配器就是将多个功能结合在一起, 达到一个新的功能, 与建造者模式不同的是, 适配器实现的接口可以有关系, 也可以没有关系, 建造者模式依赖的是不变的关系, 变的只是内部的零件 上面有错, 还请指出, 如果认为我写的还不错, 还请点个赞, 多多支持一下, O(∩_∩)O~~

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

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

相关文章

2025.9.22

2025.9.22今天学习了代码分解思想,并且成功将测试代码分解成了2大部分并各自细化子方法,测试调用方便很多,减少了代码重复冗余。

(1-10-2)MyBatis 进阶篇 - 教程

(1-10-2)MyBatis 进阶篇 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco&q…

王者荣耀官方网站s网站优化

计算机室如何管理自身所存放着的大量的信息的呢?windows的磁盘管理程序为我们提供了一套严密而又高效的信息组织形式--硬盘上的信息是以文件的形式被管理的。 面向存储的文件技术 什么是文件?计算机中,一篇文章、一幅图片、一个程序等都是以文…

网站建网站深圳专业商城网站设计制作

正题 题目链接:https://www.luogu.com.cn/problem/P4593 题目大意 场上有若干只怪,最高的为nnn,每个怪血量不同,有mmm个血量不存在。 不停释放亵渎(全场打一,如果有怪死亡就再次生效),每次一…

西宁做网站的好公司wordpress自定义背景

在数字化转型浪潮席卷全球的今天,区块链技术以其去中心化、透明性、不可篡改等独特优势,正逐步成为重塑各行各业信任机制与业务流程的关键力量。 近日,中国通信工业协会正式发布了《区块链服务 基于区块链的去中心化标识符技术要求》与《区块…

陆川建设局网站wordpress文本编辑插件

在当今社会,公共安全是国家发展的重要基石,也是人民安居乐业的基本保障。为了打造更高水平的平安中国,国家推出了意义深远的雪亮工程,并出台了一系列相关政策,为公共安全事业保驾护航。而互联网监控管理平台作为雪亮工…

北京公司建站模板错乱变装wordpress

目录 【1】用队列实现栈 思路分析 ​ 易错总结 Queue.c&Queue.h手撕队列 声明栈MyStack 创建&初始化栈myStackCreate 压栈myStackPush 出栈&返回栈顶元素myStackPop 返回栈顶元素myStackTop 判断栈空否myStackEmpty 释放空间myStackFree MyStack总代码…

xampp 开发网站wordpress国内打开慢

四年创作,心路历程 前言初识收获日常憧憬 前言 这是我在这个网站整理的笔记,有错误的地方请指出,关注我,接下来还会持续更新。 作者:神的孩子都在歌唱 前言 今天打开csdn,发现官方发送了一条私信,原来我已经在计算机这…

和县网站设计页面设计包括什么

批量查询邮政快递单号的物流信息,将提前签收件分析筛选出来。 所需工具: 一个【快递批量查询高手】软件 邮政快递单号若干 操作步骤: 步骤1:运行【快递批量查询高手】软件,并登录 步骤2:点击主界面左上角…

中国城乡建设部人力网站首页网站建设售后服务费包括哪些

图 基本介绍 表示方式 图的创建 from typing import Listclass Graph:vertex_list: List[str] [] # 存储顶点的数组edges: List[list] [] # 存储图中各条边的邻接矩阵num_edges: int 0 # 边的数总数def __init__(self, n: int):"""根据传入的顶点个数初始…

联想拯救者无法登录当前账户

联想拯救者无法登录当前账户 坑货联想具体病因: 更新后把账户文件夹(C:\User\你的账户文件夹)的权限给丢掉了,处于一种无法被访问、调用的状态。 电脑不能没有账户可读,于是在同级的User文件夹中生成了名为TEMP的…

Spark 性能优化全攻略:内存管理、shuffle 优化与参数调优 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

站长之家站长工具无锡在线制作网站

其实在今天的运维领域,ITIL和DevOps之间的冲突还是蛮明显的,有些是表现在产品上,有些是表现在思维/理念上。ITIL在产品上以流程为核心目标的设计,很难满足自动化的要求,DevOps极力推崇工具/平台/自服务文化&#xff1b…

WPF二合一平板电脑上屏幕旋转时获取屏幕宽高问题

在二合一平板上面,屏幕旋转之后,屏幕的宽高会被改变,如果代码里面有用到屏幕宽高的地方可能会出错。 获取屏幕宽高位置可以通过可以通过如下几种方式获取/// <summary>/// 获取屏幕大小 /// </summary>…

以橙色为主的网站上海网页设计公司哪儿济南兴田德润有活动吗

SpringBootAdmin监控原理Actuator&#xff0c;自定义指标 文章目录 SpringBootAdmin监控原理Actuator&#xff0c;自定义指标actuator自定义info端点信息自定义Health端点信息自定义metrics端点信息端点的自定义 actuator JMX方式就是在cmd控制台输入jconsole&#xff0c;会弹出…

asp.net 制作网站教程推销产品怎么推广

前言 今天看到群里有人问”用matlab输出测试集的精度“&#xff0c;瞎试了一下&#xff0c;好像还成功了。主要还是依据前面所有在matlab中操作caffe的博客。 这里说一下&#xff1a;classification.m是适用单张图片的精度&#xff0c;类似于classification.exe的功能&#x…

衡水 网站开发wordpress 目录模板

正题 题目链接:https://www.51nod.com/Contest/Problem.html#contestProblemId1149 题目大意 nnn个数&#xff0c;求有多少种选择方案使选择的数乘机为kkk。 解题思路 显然kkk的质因数最多只有999个&#xff0c;我们将质因数进行dpdpdp。若选择的数的质因数刚好是kkk的质因数…

网站建设查看框架的源代码武威百度做网站多少钱

1.为啥主系统装了Ubuntu 由于公司发电脑了&#xff0c;我自己也有一台台式电脑&#xff0c;然后也想去折腾一下Ubuntu&#xff0c;就把自己的笔记本装成Ubuntu系统了&#xff0c; 我使用的是23.04的桌面版&#xff0c;带图形化界面的。我准备换回Windows 11了&#xff08;因为…

平面设计网站建设网站建设 宁夏

大家在使用Word邮件合并这个功能&#xff0c;比如制作席卡、贺卡、准考证、员工档案、成绩单、邀请函、名片等等&#xff0c;那就需要对图片路径进行转换处理&#xff0c;此脚本就是直接将图片的路径提取出来&#xff0c;并把内容放到txt格式的文本文档里&#xff0c;打开Excel…

怎么做公司网站需要什么科目应用公园是收费还是免费的

最小 API 并不是在 .NET 7 中才加入的&#xff0c;记得应该是在 .NET 6 中就已经提供&#xff0c;只是对我来说&#xff0c;到现在才开始使用。创建一个最小 API在 VS 2022 中创建 WebAPI 项目&#xff0c;不勾选使用控制器&#xff0c;创建出来的就是最小 API &#xff1a;不勾…