每日随笔——适配器模式
[实验任务一]:双向适配器
实现一个双向适配器,使得猫可以学狗叫,狗可以学猫抓老鼠。
实验要求:
1.画出对应的类图;
2.提交源代码;
3.注意编程规范。
类图
源码:
Cat package sc8; public interface cat { void catchMouse(); void cry(); } Dog package sc8; public interface dog { void wang(); void action(); } concreteCat package sc8; public class concreteCat implements cat{ @Override public void catchMouse() { System.out.println("猫抓老鼠"); } @Override public void cry() { System.out.println("猫叫"); } } concreteDog package sc8; public class concreteDog implements dog{ @Override public void wang() { System.out.println("狗叫"); } @Override public void action() { System.out.println("狗抓老鼠"); } } adapter package sc8; 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; } 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(); } } test package sc8; public class test { 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 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!