首页 > 其他分享 >软件设计-Tutorial14

软件设计-Tutorial14

时间:2024-11-11 23:30:10浏览次数:1  
标签:MatchmakingService 软件设计 age Tutorial14 RealMatchmakingService MatchmakingProxy p

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

 

标签:MatchmakingService,软件设计,age,Tutorial14,RealMatchmakingService,MatchmakingProxy,p
From: https://www.cnblogs.com/muzhaodi/p/18540812

相关文章

  • 软件设计-Tutorial13
    ```mermaidclassDiagramclassChessPiece{<<abstract>>+Stringcolor+display(intx,inty)}classWhiteChessPiece{+display(intx,inty)}classBlackChessPiece{+display(int......
  • 软件设计-Tutorial12
    packageTutorial12;//定义各个硬件设备和软件的类classMemory{publicbooleancheck(){System.out.println("Memoryself-checking...");//假设返回true表示自检成功returntrue;}}classCPU{publicbooleanrun(){......
  • 4.3软件设计:面对对象的设计
    面对对象设计1、面对对象的架构设计1.1第一步:构造系统的物理模型1.2第二步:设计子系统划分各个子系统的方式定义子系统之间的关系定义子系统的接口1.3第三步:非功能需求设计2、面对对象的用例设计与类设计2.1类2.2类间关系2.3细化用例第一步:定义类的属性第二步:定义......
  • 幼儿早教小程序软件设计与实现毕业设计源码
    博主介绍:✌专注于VUE,小程序,安卓,Java,python,物联网专业,有17年开发经验,长年从事毕业指导,项目实战✌选取一个适合的毕业设计题目很重要。✌关注✌私信我✌具体的问题,我会尽力帮助你。研究的背景:随着科技的发展和教育理念的进步,幼儿教育越来越受到重视。然而,传统的幼儿教育模......
  • 软件设计师:排序算法总结
    一、直接插入排序方式:从第一个数开始,拿两个数比较,把后面一位跟前面的数比较,把较小的数放在前面一位二、希尔排序方式:按“增量序列(步长)”分组比较,组内元素比较交换 假设初始关键字:48   37   64   96   75   12   26   58   54   3,有......
  • 软件设计-Tutorial09
    用桥接模式实现在路上开车这个问题,其中,车可以是car或bus,路可以是水泥路或沥青路。类图:```mermaidclassDiagramclassRoad{<<interface>>+drive()}classCementRoad{+drive()}classAsphaltRoad{+drive()......
  • 软件设计Tutorial08
      实验8:适配器模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解适配器模式的动机,掌握该模式的结构;2、能够利用适配器模式解决实际问题。 [实验任务一]:双向适配器实现一个双向适配器,使得猫可以学狗叫,狗可以学猫抓老鼠。实验要求:1. 画出对应的类图;......
  • 学习高校课程-软件设计模式-责任链模式和命令模式(lec9)
    原文链接ChainofResponsibility:ProblemExample:anonlineorderingsystem示例:在线订购系统–Therequestmustpassaseriesofchecks–Newrequirements:validation,filteringrepeatedfailedrequests,speedingupbyreturningcachedresults,andmore–......
  • 学习高校课程-软件设计模式-享元模式和代理模式(lec8)
    原文链接Flyweight:ProblemEachparticle,suchasabullet,amissileorapieceofshrapnelwasrepresentedbyaseparateobjectcontainingplentyofdata.Atsomepoint,whenthecarnageonaplayer’sscreenreacheditsclimax,newlycreatedparticlesno......
  • 学习高校课程-软件设计模式-组合模式、装饰器模式和外观模式(lec7)
    原文链接Composite:ProblemUsingtheCompositepatternmakessenseonlywhenthecoremodelofyourappcanberepresentedasatree.仅当应用程序的核心模型可以表示为树时,使用复合模式才有意义。Forexample,imaginethatyouhavetwotypesofobjects:Products......