首页 > 其他分享 >11.6实验11:装饰模式

11.6实验11:装饰模式

时间:2024-11-18 08:46:37浏览次数:1  
标签:11 Phone 11.6 System public phone serviceCall println 装饰

[实验任务一]:手机功能的升级

用装饰模式模拟手机功能的升级过程:简单的手机(SimplePhone)在接收来电时,会发出声音提醒主人;而JarPhone除了声音还能振动;更高级的手机(ComplexPhone)除了声音、振动外,还有灯光闪烁提示。

实验要求:

1. 提交类图;

 

 

 

2. 提交源代码;

package test11;

 

public abstract class Phone {

    public void serviceCall() {

 

    }

}

 

 

package test11;

 

 

public class ComplexPhone extends PhoneDecoration {

    public ComplexPhone(Phone phone) {

        super(phone);

    }

 

    @Override

    public void serviceCall() {

        super.serviceCall();

        System.out.println("ComplexPhone:发出声音、震动并灯光闪烁提醒主人电话来了");

    }

}

 

package test11;

 

public class PhoneDecoration extends Phone {

    private Phone phone = null;

 

    public PhoneDecoration(Phone phone) {

        if (phone != null) {

            this.phone = phone;

        } else {

            this.phone = new SimplePhone();

        }

    }

 

    @Override

    public void serviceCall() {

        phone.serviceCall();

    }

}

 

package test11;

 

public class Client {

 

    public static void main(String[] args) {

 

        Phone p1 = new SimplePhone();

        System.out.println("生产简单手机");

        p1.serviceCall();

 

        System.out.println("***********************");

        Phone p2 = new JarPhone(p1);

        System.out.println("升级为JarPhone手机");

        p2.serviceCall();

        System.out.println("***********************");

 

        Phone p3 = new ComplexPhone(p2);

        System.out.println("升级为ComplexPhone手机");

        p3.serviceCall();

    }

}

 

package test11;

 

public class JarPhone extends PhoneDecoration {

    public JarPhone(Phone phone) {

        super(phone);

    }

 

    @Override

    public void serviceCall() {

        super.serviceCall();

        System.out.println("JarPhone:发出声音并震动提醒主人电话来了");

    }

}

 

package test11;

 

public class SimplePhone extends Phone {

 

    public void serviceCall() {

        System.out.println("SimplePhone:发出声音提醒主人电话来了");

    }

}

3.注意编程规范。

 

 

标签:11,Phone,11.6,System,public,phone,serviceCall,println,装饰
From: https://www.cnblogs.com/yindantong/p/18551619

相关文章

  • 11.7实验12:外观模式
    [实验任务一]:计算机开启在计算机主机(Mainframe)中,只需要按下主机的开机按钮(on()),即可调用其他硬件设备和软件的启动方法,如内存(Memory)的自检(check())、CPU的运行(run())、硬盘(HardDisk)的读取(read())、操作系统(OS)的载入(load()),如果某一过程发生错误则计算机启动失败。......
  • 2024-11-17 uniapp小程序之自定义 · 全局弹窗
    效果图:目录结构: 共需要修改6个地方,开始前请安装一个依赖:vue-inset-loadernpmivue-inset-loadervue-inset-loader的GitHub地址:https://github.com/1977474741/vue-inset-loader一:新建弹窗文件components/golbalModa.vue<template><viewclass="modal"v-if="globa......
  • 芒果Ultralytics最新YOLO11算法原理解析-包含最新详细-结构图,以及内附YOLO11各部分细
    YOLO11系列是YOLO家族中最先进的(SOTA)、最轻量级、最高效的模型,其表现优于其前辈。它由Ultralytics创建,该组织发布了YOLOv8,这是迄今为止最稳定、使用最广泛的YOLO变体。YOLO11将延续YOLO系列的传奇。在本文中,我们将探讨YOLO11文章目录YOLO11架构、YOLO11......
  • 《Django 5 By Example》阅读笔记:p211-p236
    《Django5ByExample》学习第7天,p211-p236总结,总计26页。一、技术总结1.messages(消息推送)django.contrib.messages。2.OAuth2Django里使用的是social-app-django这个package进行认证操作。3.开发环境使用HTTPS使用django-extensions,werkzeug,pyOpenSSL实现。4.第三方......
  • [考试记录] 2024.11.16 noip模拟赛14
    T1字符串构造机考虑将一个LCP条件拆分成两个,一个是相等的部分,使用并查集维护,另一个是不等的部分,两个串末尾的字符一定不相等,随便那啥维护。对于非法情况就是在同一个相等联通块内有不相等的条件。然后考虑从前往后贪心即可。#include<bits/stdc++.h>usingnamespacestd;#d......
  • 《痞子衡嵌入式半月刊》 第 111 期
    痞子衡嵌入式半月刊:第111期这里分享嵌入式领域有用有趣的项目/工具以及一些热点新闻,农历年分二十四节气,希望在每个交节之日准时发布一期。本期刊是开源项目(GitHub:JayHeng/pzh-mcu-bi-weekly),欢迎提交issue,投稿或推荐你知道的嵌入式那些事儿。上期回顾:《痞子衡嵌入式半月......
  • MLLM_20241117
    Paper1题目:INFERENCEOPTIMALVLMSNEEDONLYONEVISUALTOKENBUTLARGERMODELS作者团队:KevinY.Li,SachinGoyal,JoãoD.Semedo,J.ZicoKolter(CMU)链接:https://arxiv.org/abs/2411.033121.论文试图解决什么问题?是否是一个新问题?论文试图解决VLMs推理阶......
  • NOIP 模拟 11
    T1暴力操作(opt)类似背包的处理出来除以每个数的最小代价,然后直接二分check即可,细节就是处理前后要做后缀min,然后求出\(\lfloor\frac{a}{x}\rfloor\lemid\)的最小\(x\),可以通过整除分块的套路,\(x=\lfloor\frac{a}{mid+1}\rfloor+1\)。T2异或连通(xor)trie树上的一个子树......
  • 11.17 鲜花
    11.17鲜花(RMQ专题)哈哈,回家看到朴彩英这个歌绷不住了。不是吧,姐?推歌-박채영《아파트》채영이가좋아하는랜덤게임랜덤게임Gamestart아파트아파트아파트아파트아파트아파트Uh,uhhuhuhhuh아파트아파트아파트아파트아파트아파트Uh,uhhuhuhhuhKissy......
  • 201117 noi plus 模拟赛
    省流:\(40+85+48+0\)。逆天绿紫黑黑。不能再挂分了,t1\(100\to40\),t2\(100\to85\),t3\(84\to48\)。T1给一个\(n\timesm\)的网格图,每个点只能是#或.或S或T,若这个点为#则这个点是障碍,不能到达,若是.则是空地,可以到达,S是起点,T是终点。每次你可以走四联......