实验8:适配器模式
本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:
1、理解适配器模式的动机,掌握该模式的结构;
2、能够利用适配器模式解决实际问题。
[实验任务一]:双向适配器
实现一个双向适配器,使得猫可以学狗叫,狗可以学猫抓老鼠。
实验要求:
1. 画出对应的类图;
```mermaid
classDiagram
class Animals {
<<interface>>
+shout()
+move()
}
class Cat {
+catches()
}
class Dog {
+wang()
}
class CatAdapter {
+shout()
+move()
}
class DogAdapter {
+shout()
+move()
}
Animals <|.. CatAdapter
Animals <|.. DogAdapter
Cat <|-- CatAdapter
Dog <|-- DogAdapter
```
2. 提交源代码;
|
|
|
|
|
|
|
|
|
|
|
|
package Tutorial08;
public interface Animals {
public void shout();
public void move();
}
|
|
|
|
|
package Tutorial08;
public class Cat {
public void catches(){
System.out.println("抓老鼠");
}
}
|
|
|
|
|
package Tutorial08;
public class Dog {
public void wang(){
System.out.println("汪汪叫");
}
}
|
|
|
|
|
package Tutorial08;
public class CatAdapter extends Cat implements Animals{
@Override
public void shout() {
}
@Override
public void move() {
System.out.print("狗砸:");
super.catches();
}
}
|
|
|
|
|
package Tutorial08;
public class DogAdapter extends Dog implements Animals{
@Override
public void shout() {
System.out.print("哈吉咪:");
super.wang();
}
@Override
public void move() {
}
}
|
|
|
|
|
package Tutorial08;
import com.sun.xml.internal.ws.util.xml.XmlUtil;
public class Main {
public static void main(String[]
args) {
DogAdapter dogAdapter = new
DogAdapter();
CatAdapter catAdapter = new
CatAdapter();
dogAdapter.shout();
System.out.println("--------------------");
catAdapter.move();;
}
}
|
|
3.注意编程规范。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?