软件设计-Tutorial14
```mermaid classDiagram MatchmakingService <|.. RealMatchmakingService MatchmakingService <|.. MatchmakingProxy class MatchmakingService { +findPartner() } class RealMatchmakingService { +findPartner() } class MatchmakingProxy { -RealMatchmakingService realService -int age +MatchmakingProxy(int age) +findPartner() } class Main { +main(String[] args) } MatchmakingProxy --> RealMatchmakingService : uses ```
package Tutorial14; // 接口:定义婚介所的功能 interface MatchmakingService { void findPartner(); } // 实际婚介所类,实现具体的找对象服务 class RealMatchmakingService implements MatchmakingService { @Override public void findPartner() { System.out.println("提供婚介服务:帮助您找到合适的对象!"); } } // 代理类:在实际婚介所前添加年龄验证 class MatchmakingProxy implements MatchmakingService { private RealMatchmakingService realService; private int age; public MatchmakingProxy(int age) { this.age = age; realService = new RealMatchmakingService(); } @Override public void findPartner() { if (age < 18) { System.out.println("对不起,不能早恋!"); } else { realService.findPartner(); } } } // 测试类:模拟用户访问婚介所 public class Main { public static void main(String[] args) { MatchmakingService proxy1 = new MatchmakingProxy(16); proxy1.findPartner(); // 输出“对不起,不能早恋!” MatchmakingService proxy2 = new MatchmakingProxy(20); proxy2.findPartner(); // 输出“提供婚介服务:帮助您找到合适的对象!” } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2023-11-11 11.10日补交 顺序表的实现