| 将人分为男人和女人,对歌手进行测评,当看完某个歌手表演后,得到他们对该歌手不同的评价(评价 有不同的种类,比如 成功、失败 等),请使用访问者模式来说实现 |

| package com.atguigu.visitor; |
| public abstract class Person { |
| |
| public abstract void accept(Action action); |
| } |
| |
| package com.atguigu.visitor; |
| public class Man extends Person { |
| |
| @Override |
| public void accept(Action action) { |
| |
| action.getManResult(this); |
| } |
| |
| } |
| |
| package com.atguigu.visitor; |
| |
| |
| |
| |
| public class Woman extends Person{ |
| |
| @Override |
| public void accept(Action action) { |
| |
| action.getWomanResult(this); |
| } |
| |
| } |
| |
| package com.atguigu.visitor; |
| public abstract class Action { |
| |
| public abstract void getManResult(Man man); |
| |
| public abstract void getWomanResult(Woman woman); |
| } |
| |
| package com.atguigu.visitor; |
| public class Success extends Action { |
| |
| @Override |
| public void getManResult(Man man) { |
| |
| System.out.println(" 男人给的评价该歌手很成功 !"); |
| } |
| |
| @Override |
| public void getWomanResult(Woman woman) { |
| |
| System.out.println(" 女人给的评价该歌手很成功 !"); |
| } |
| |
| } |
| |
| package com.atguigu.visitor; |
| public class Fail extends Action { |
| |
| @Override |
| public void getManResult(Man man) { |
| |
| System.out.println(" 男人给的评价该歌手失败 !"); |
| } |
| |
| @Override |
| public void getWomanResult(Woman woman) { |
| |
| System.out.println(" 女人给的评价该歌手失败 !"); |
| } |
| |
| } |
| |
| package com.atguigu.visitor; |
| public class Client { |
| |
| public static void main(String[] args) { |
| |
| |
| ObjectStructure objectStructure = new ObjectStructure(); |
| objectStructure.attach(new Man()); |
| objectStructure.attach(new Woman()); |
| |
| Success success = new Success(); |
| objectStructure.display(success); |
| System.out.println("==============="); |
| Fail fail = new Fail(); |
| objectStructure.display(fail); |
| } |
| |
| } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术
2021-08-31 vue开发:前端项目模板