首页 > 其他分享 >每日总结11.09

每日总结11.09

时间:2023-11-09 20:55:18浏览次数:35  
标签:总结 11.09 phone 每日 System Phone serviceCall println public

装饰模式
1、理解装饰模式的动机,掌握该模式的结构;
2、能够利用装饰模式解决实际问题。
[实验任务]:手机功能的升级
用装饰模式模拟手机功能的升级过程:简单的手机(SimplePhone)在接收来电时,会发出声音提醒主人;

而JarPhone除了声音还能振动;更高级的手机(ComplexPhone)除了声音、振动外,还有灯光闪烁提示。

类图:

 


源代码:
Client类:
public class Client {

public static void main(String[] args) {
// TODO 自动生成的方法存根

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();
}

}
Phone类:
public abstract class Phone {

public void serviceCall() {

}
}

SimplePhone类:
public class SimplePhone extends Phone {

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

PhoneDecoration类:
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();
}
}

JarPhone类:
public class JarPhone extends PhoneDecoration {

public JarPhone(Phone phone) {
super(phone);
// TODO 自动生成的构造函数存根
}
@Override
public void serviceCall() {
super.serviceCall();
System.out.println("JarPhone:发出声音并震动提醒主人电话来了");
}


}

ComplexPhone类:
public class ComplexPhone extends PhoneDecoration {

public ComplexPhone(Phone phone) {
super(phone);
// TODO 自动生成的构造函数存根
}
@Override
public void serviceCall() {
super.serviceCall();
System.out.println("ComplexPhone:发出声音、震动并灯光闪烁提醒主人电话来了");
}


}

 

标签:总结,11.09,phone,每日,System,Phone,serviceCall,println,public
From: https://www.cnblogs.com/-GYP/p/17822812.html

相关文章

  • 每日水题记录(洛谷)
    每日水题记录(洛谷)只记录红橙题,因为\(\ge\)橙不算很水的题。\(2023.11.9\)P1012[NOIP1998提高组]拼数\(75\)分代码直接把每个数字用字符串输入,然后按字典序排序。原因:不能直接按字典序排序,寄。#include<iostream>#include<algorithm>#include<cmath>#include<c......
  • 【每日例题】蓝桥杯 c++ 报纸页数
    报纸页数题目本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。×星球日报和我们地球的城市早报是一样的,都是一些单独的纸张叠在一起而已。每张纸印有4版。比如,某张报纸包含的4页是:5,6,11,12,可以确定它应该是最上边的第2张报纸。我们在太空中捡到了一张×......
  • 11.09
    今天119。本来挺正常的,然后不知道为啥今晚洛天依没来,所以机房就我一个人(恐),不对,越想越不对劲,所以干脆不去想。然后OJ又炸了。最近挺频繁啊,一天炸一次,故意的是吧。今晚又只能乱打了。先这么着吧,往后学学。草,我刚发布完不超过5分钟洛天依就来了。打脸++。打个脚先......
  • 2023-2024-1 20231414 《计算机基础与程序设计》第七周学习总结
    学期(2023-2024-1)学号(20231414)《计算机基础与程序设计》第七周学习总结作业信息这个作业属于哪个课程<班级的链接>(如2023-2024-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(2023-2024-1计算机基础与程序设计第七周作业)这个作业的目标<写上具体方......
  • 2023-2024-1 20231419 《计算机基础与程序设计》第七周学习总结
    2023-2024-120231419《计算机基础与程序设计》第七周学习总结作业信息这个作业属于哪个课程https://edu.cnblogs.com/campus/besti/2023-2024-1-CFAP这个作业要求在哪里https://www.cnblogs.com/rocedu/p/9577842.html#WEEK07这个作业的目标自学《计算机科学概......
  • Linux第六次周总结
    第五章 进程管理5.1初识进程进程是已启动的可执行程序的运行实例。进程有以下组成部分。1.已分配内存的地址空间。2.安全属性,包括所有权凭据和特权。3.程序代码的一个或多个执行线程。4.进程状态每个进程都有唯一的进程标识PID,一个PID只能标识一个进程,PPID为父进程ID,需......
  • 今日总结
    今天上了王老师的课,课上老师为我们讲了与客户调研时,重要的一些点,还有察言观色等技巧和经验,同时让我们明白了与客户合理有效交流的重要性和作用;课上老师让我们三人一组,完成erp系统的构建;下午花时间完成了我的第一个C#winform窗口程序,花了好几个小时,最终实现了所有功能,虽然只是一......
  • 2023年11月9号数学总结和笔记
    微积分的主要研究:事物运动中的数量的变化规律微积分分为两大类微分学(导数)积分学(积分)主要研究两种变化均匀变化(用初等数学可以解决)非均匀变化(用高等数学来解决)还有两个侧面宏观(局部,微分学,用来研究事物在某一时刻的变化率)微观(整体,积分学,用来研究......
  • mysql字符串拼接的4种方式总结
    前言第一种:第二种:第三种:第四种(运算,只对数字有效):附:MySQLgroup_concat()详解总结 前言总是记不住字符串拼接,每次都要百度去搜索,所以在这里记录一下,好方便后续的查找,如有错误和问题可以提出,谢谢。字符串拼接分为几种方式,在这里会一一举例写出:第一种:mysql自带语法C......
  • Glibc堆利用之house of系列总结
    目录1-前言2-houseof系列2.1-houseofspirit漏洞成因适用范围利用原理相关技巧利用效果2.2-houseofeinherjar漏洞成因适用范围利用原理相关技巧利用效果2.3-houseofforce漏洞成因适用范围利用原理相关技巧利用效果2.4-houseoflore漏洞成因适用范围利用原理相关技巧利用效......