结构型模式——适配器模式

一、 实验目的与要求
1.练习使用适配器模式。设计相关的模拟场景并进行实施,验证模式特性,掌握其优缺点。
2.实验结束后,对相关内容进行总结。
二、实验内容
1.模式应用场景说明
现在喜欢上网的年轻人越来越多,而家里面的电脑满足不了玩游戏的性能,我们一般都到网吧去玩,而网吧里的电脑,它是一个云端电脑,因为每次开机的时候就像新的一样。而我们可以在里面选择是进入AMD的电脑,还是英特尔的电脑?这个可以使用适配器模式进行解决。我们只要有云端电脑进入选择就行了
2.应用场景类图
在这里插入图片描述

3.实现代码与解释
3.1目标抽象类云端电脑

package 适配器模式;public interface 云端电脑 {public void open();		public void playGame(); 
}

3.2适配者类代码AMD

package 适配器模式;public class AMD {public void openAMD() {System.out.printf("AMD开机");}public void gameAMD() {System.out.println("用AMD电脑端玩游戏");}
}

3.3 适配器类代码

package 适配器模式;public class AMDPc extends AMD implements 云端电脑{public void open(){System.out.println("云端电脑: ");super.openAMD();}public void playGame() {System.out.println("云端电脑: ");super.gameAMD();}
}

3.4用户部分代码

package 适配器模式;public class Client {public static void main(String args[]) {云端电脑 computer;computer=(云端电脑)XMLUtil.getBean();computer.open();		computer.playGame(); }
}

3.5 辅助代码
在这里插入图片描述

4.结果及分析

在这里插入图片描述

三、实验总结
适配器模式,就是作为两种不相互兼容的物体之间的桥梁, 适配器模式主要有两种类型,一种是类适配器模式,主要通过继承来实现适配器功能;一种是对象适配器模式,通过组合来实现适配器功能。可以设置一个目标,抽象的一个适配器类,一个是配置类和一个用户。通过适配器类,将目标抽象类实现适配者类的功能。展示给用户

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

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

相关文章

[号外] Blazor wasm 其实也挺快!

之前第一篇的时候,因为没有用任意配置,导致wasm加载很慢,我就感觉不会是这样的,为了不误导小盆友,所以还是趁着周末研究了一波,做了相关的调整,经过测试,速度基本可观了,…

WinUI 3 试玩报告

1. 什么是 WinUI 3#在微软 Build 2020 开发者大会上,WinUI 团队宣布可公开预览的 WinUI 3 Preview 1,它让开发人员可以在 Win32 中使用 WinUI。WinUI 3 Preview 1 包含新的 VisualStudio 项目模板,可以创建面向 .NET 5 的 C# 和 C/Win32 项目…

记一次EF Core连接MySql、Oracle

点击上方“Dotnet9”添加关注哦上上个月写的一篇文章,今天有同事问我使用EF Core连接MySql和Oracel的问题,我把这篇文章直接甩给了他。下面是正文:这几天研究了EF Core对MySql、Oracle的操作,包括连接、简单查询等,操作…

基于 abp vNext 和 .NET Core 开发博客项目 - 博客接口实战篇(五)

系列文章使用 abp cli 搭建项目给项目瘦身,让它跑起来完善与美化,Swagger登场数据访问和代码优先自定义仓储之增删改查统一规范API,包装返回模型再说Swagger,分组、描述、小绿锁接入GitHub,用JWT保护你的API异常处理和…

Codeforces Round #719 (Div. 3)/ Codeforces Round #720 (Div. 2)

A. Do Not Be Distracted! 题意: 一件事情一但开始,只能做完才能做别的事,当出现一件事不连续出现时,教师会怀疑 题目: Polycarp has 26 tasks. Each task is designated by a capital letter of the Latin alphab…

dotNET Core 3.X 使用 Autofac 来增强依赖注入

在上一篇《dotNET Core 3.X 依赖注入》中简单介绍了 dotNET Core 框架本身的依赖注入功能,大部分情况下使用框架的依赖注入功能就可以满足了,在一些特殊场景下,我们就需要引入第三方的注入框架。为什么要使用 Autofac?如果您在之前…

[JS-DOM]DOM概述

DOM: * 概念: Document Object Model 文档对象模型* 将标记语言文档的各个组成部分,封装为对象。可以使用这些对象,对标记语言文档进行CRUD的动态操作* W3C DOM 标准被分为 3 个不同的部分:* 核心 DOM - 针对任何结构…

基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(一)

系列文章使用 abp cli 搭建项目给项目瘦身,让它跑起来完善与美化,Swagger登场数据访问和代码优先自定义仓储之增删改查统一规范API,包装返回模型再说Swagger,分组、描述、小绿锁接入GitHub,用JWT保护你的API异常处理和…

2021年度训练联盟热身训练赛第一场 H题On Average They‘re Purple(BFS)

题意: 给你一些联通关系,问Bob先选择一些路径(1~n)联通,Alice在路径上染色,Bob的目的是选择一些路径使得染色变化最小,对于Alice来说,需要使得在Bob选择的(1−n1-n1−n&…

使用请求头认证来测试需要授权的 API 接口

使用请求头认证来测试需要授权的 API 接口Intro有一些需要认证授权的接口在写测试用例的时候一般会先获取一个 token,然后再去调用接口,其实这样做的话很不灵活,一方面是存在着一定的安全性问题,获取 token 可能会有一些用户名密码…

双端队列 BFS + Chamber of Secrets CodeForces - 173B

题意: 一个 nmn\times mnm 的图,现在有一束激光从左上角往右边射出,每遇到 ‘#’,你可以选择光线往四个方向射出,或者什么都不做,问最少需要多少个 ‘#’ 往四个方向射出才能使光线在第 n 行往右边射出。 …

程序员过关斩将--作为一个架构师,我是不是应该有很多职责?

点击上方“蓝字”关注我们领取架构书籍每一个程序员都有一个架构梦。上面其实本质上是一句富有事实哲理的废话,要不然也不会有这么多人关注你的公众号。这些年随着“企业数字化”转型的口号,一大批企业奔跑在转型的路上,希望领先一步对手将企…

Excel使用技巧,补充中。。。

Excel表怎么把名字按字母排序 然后后面的数据也跟着变动 1、首先在excel表格的A列单元格中输入字母,选中需要排序的A列和B列单元格。 2、然后点击工具栏“数据”中的“排序”。 3、在弹出的对话框中的“次序”下拉框中选择“自定义序列”。 4、然后在弹出的对话…

递归函数中局部变量和全局变量

有时候会因为不注意递归函数中局部变量和全局变量,而导致结果和我们期望的不一致,递归中,在递归中的局部变量和全局变量,可以类似的看成函数调用时传递方式的按值传递(局部变量)和引用传递(全局…

基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(二)

系列文章使用 abp cli 搭建项目给项目瘦身,让它跑起来完善与美化,Swagger登场数据访问和代码优先自定义仓储之增删改查统一规范API,包装返回模型再说Swagger,分组、描述、小绿锁接入GitHub,用JWT保护你的API异常处理和…

Azure App Service 如何在第一时间用上最新版 .NET Core

点击上方关注“汪宇杰博客” ^_^导语微软会经常对 .NET Core 发布更新,通常为安全补丁。这不,今天早上,.NET Core 3.1.5 更新发布了。然而 Azure App Service 自身的 .NET Core runtime 并不会在第一时间更新,每次都要等几周后微软…

我们是如何做DevOps的?

一、DevOps的理解DevOps的概念理解DevOps 的概念在软件开发行业中逐渐流行起来。越来越多的团队希望实现产品的敏捷开发,DevOps 使一切成为可能。有了 DevOps ,团队可以定期发布代码、自动化部署、并将持续集成 / 持续交付作为发布过程的一部分。一句话概…

word文档相关使用

主要是为了记忆,有的时候,之前查阅过,后来使用又忘记了,以后碰了就陆续添加吧,先开一个博文 文章目录插入图片,显示不全的问题:方法一:方法二:方法三:在左侧显…

调试实战 —— dll 加载失败之 Debug Release争锋篇

缘起 最近,项目里遇到一个 dll 加载不上的问题。实际项目比较复杂,但是解决后,又是这么的简单,合情合理。本文是我使用示例工程模拟的,实际项目中另有玄机,但问题的本质是一样的。本文从行文上与 《调试实战…

一文说通Dotnet Core的后台任务

这是一文说通系列的第二篇,里面有些内容会用到第一篇中间件的部分概念。如果需要,可以参看第一篇:一文说通Dotnet Core的中间件一、前言后台任务在一些特殊的应用场合,有相当的需求。比方,我们需要实现一个定时任务、或…