菜鸟的博客

纵有疾风起,人生不言弃。

导航

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

 

posted on 2024-11-11 23:33  hhmzd233  阅读(0)  评论(0编辑  收藏  举报