实验8:适配器模式
本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:
1、理解适配器模式的动机,掌握该模式的结构;
2、能够利用适配器模式解决实际问题。
[实验任务一]:双向适配器
实现一个双向适配器,使得猫可以学狗叫,狗可以学猫抓老鼠。
实验要求:
1.画出对应的类图;
2.提交源代码;
3.注意编程规范。
package ruanjiansheji.shiyan8; public class Adapter implements Dog,Cat{ private Cat cat; private Dog dog; public Cat getCat() { return cat; } public void setCat(Cat cat) { this.cat = cat; } public Dog getDog() { return dog; } public void setDog(Dog dog) { this.dog = dog; } @Override public void cry() //猫学狗叫 { System.out.print( "猫学"); dog.wang(); } @Override public void catchMouse() { cat.catchMouse(); } @Override public void wang() { dog.wang(); } @Override public void action() //狗学猫抓老鼠 { System.out.print( "狗学"); cat.catchMouse(); } } package ruanjiansheji.shiyan8; public interface Cat { void cry(); void catchMouse(); } package ruanjiansheji.shiyan8; public class ConcreteCat implements Cat{ @Override public void cry() { System.out.println("猫叫"); } @Override public void catchMouse() { System.out.println("猫抓老鼠"); } } package ruanjiansheji.shiyan8; public class ConcreteDog implements Dog{ @Override public void wang() { System.out.println("狗叫"); } @Override public void action() { } } package ruanjiansheji.shiyan8; public interface Dog { void wang(); void action(); } package ruanjiansheji.shiyan8; public class Main { public static void main(String args[]) { Cat cat1 = new ConcreteCat(); Dog dog1 = new ConcreteDog(); Adapter A1 = new Adapter(); A1.setCat(cat1); A1.setDog(dog1); cat1 = (Cat) A1; cat1.cry(); dog1 = (Dog) A1; dog1.action(); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!