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

每日总结30

时间:2023-11-09 14:11:38浏览次数:33  
标签:总结 phone 每日 30 System Phone serviceCall println public

软件设计                  石家庄铁道大学信息学院

 

实验11:装饰模式

本次实验属于模仿型实验,通过本次实验学生将掌握以下内容: 

1、理解装饰模式的动机,掌握该模式的结构;

2、能够利用装饰模式解决实际问题。

 

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

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

 

实验要求:

1. 提交类图;

 

2. 提交源代码;

Client.java

 package ruanshe11;

 

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

    }

 

}

ComplexPhone.java

 package ruanshe11;

  

  public class ComplexPhone extends PhoneDecoration {

  

      public ComplexPhone(Phone phone) {

          super(phone);

          // TODO 自动生成的构造函数存根

      }

      @Override

     public void serviceCall() {

         super.serviceCall();

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

     }

     

 

 }

JarPhone.java

 package ruanshe11;

  

  public class JarPhone extends PhoneDecoration {

  

      public JarPhone(Phone phone) {

          super(phone);

          // TODO 自动生成的构造函数存根

      }

      @Override

     public void serviceCall() {

       super.serviceCall();

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

     }

     

 

 }

Phone.java

 package ruanshe11;

 

 public abstract class Phone {

 

     public void serviceCall() {

         

     }

 }

 

PhoneDecoration.java

 package ruanshe11;

  

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

     }

 }

SimplePhone.java

 package ruanshe11;

 

 public class SimplePhone extends Phone {

 

     public void serviceCall() {

         System.out.println("SimplePhone:发出声音,电话来了");

         }

 }

 

3.注意编程规范。

 

 

标签:总结,phone,每日,30,System,Phone,serviceCall,println,public
From: https://www.cnblogs.com/mine-my/p/17819612.html

相关文章

  • 每日总结1109
    今天对于企业ERP有了新的了解,其中最重要的部分莫过于支出收入,考核三个部分,因为每一个企业都是与利益挂钩了。ERP的核心价值:提高工作效率:简化和自动化核心业务流程,帮助企业所有人员用更少的资源完成更多任务。深化洞察力:消除信息孤岛,建立统一的真实数据源,快速解决任务关键......
  • js能实现301跳转吗,能返回301状态码?举个代码例子
    在JavaScript中实现301重定向通常是在服务器端进行的,因为301重定向是一种永久性的重定向,它需要在HTTP响应中设置状态码。客户端JavaScript(例如在浏览器中运行的)通常不能直接设置HTTP状态码,因为这是由服务器处理的。但是,如果你在服务器端使用Node.js,你可以实现301重定向。以下是一......
  • 每日博客
    软件系统对企业需求捕获进行需求捕获流程:提前沟通->确认谈话主题->展开调研->按部门展开收集对于企业高层:探讨系统主要目标和包含范围对于企业中层:理清系统需求主要框架对于企业操作层:理解系统需求的细节进行谈话的话题:开放式,封闭式,半开放谈话结构:金字塔(先封闭后开放);漏斗(先......
  • Nginx安装、配置及使用总结
    Nginx的安装、配置及使用总结:Nginx是一个高性能的HTTP及反向代理服务器,也是IMAP/POP3/SMTP代理服务器。在高并发情况下,Nginx突出了它的高性能和稳定性,对比同类服务器技术而言,它是很多国内大中型网站首选的服务器环境。和往常一样,在总结一门新技术时都会先从它的环境配置及使用开始......
  • 【从零开始学习Go语言】八.Go语言的数组切片引用类型与值类型(总结)
    【从零开始学习Go语言】Go语言的数组与切片引用类型与值类型一.数组二.多维数组三.切片四.值类型与引用类型一.数组go语言的数组在之前的一些例子中有引用过,go的数组在创建时需要声明存储数据的类型,长度,并且长度在确定后便不可增加,类似python中的元组数组的声明方式有多种:第一种......
  • cmake内置变量总结
    一、概述在使用CMake配置CMakeLists.txt的时候,内置变量会极大的方便我们编写。所以在这里罗列出cmake常用的内置变量二、常用内置变量PROJECT_SOURCE_DIR项目根目录PROJECT_BINARY_DIR执行cmake命令的目录CMAKE_CURRENT_SOURCE_......
  • 2023NOIP A层联测26 总结
    2023NOIPA层联测26总结题目T1origen大意\(n,a_i\leq2\times10^5\)赛时思路一开始想固定一个端点递推去求贡献,发现异或加上平方维护不了递推式,痛失40min。后面多的时间分给T1后接着想做法,考虑拆平方化代数式,然后平方项的因式分解忘了,导致后面一直认为平方项会被加多......
  • mediakit 源码 轻微微 学习总结
    mediakit源码轻微微学习总结概要项目地址:https://github.com/ZLMediaKit/ZLMediaKit此项目我们把他做为一个流媒体服务器,我们会有srt和rtsp的流推到mediakit,然后网页使用webrtc播放。还有使用一些webhook来支持按需推流、不中断录像等,更多功能不再赘述。虽然我不是专业的......
  • 每日随笔——抽象工厂模式
    [实验任务一]:人与肤色使用抽象工厂模式,完成下述产品等级结构: 实验要求:1.画出对应的类图;2.提交源代码;3.注意编程规范。1、类图 2、 源码BlackFactorypackagesc4;publicclassBlackFactoryimplementsMWFactory{publicstaticManproduceMan(){......
  • 每日总结之设计模式:组合模式
    一、什么是组合模式组合模式也成为整体部分模式,是一种结构型设计模式。它将对象组合成树形的层次结构,用来表示“整体-部分”的关系。通过组合模式,我们可以使用相同的方式处理单个对象和多个对象组合。二、角色组成组件(Component):定义组合模式中所有对象共有的方法和属性。叶......