软件设计-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(); // 输出“提供婚介服务:帮助您找到合适的对象!” } }