21.3    需求:P510
用例模型(use case model):用例图(use case diagram)、用例(use case)、行为说明(behaviour specification)、活动者(actor)、角色(role)。
用例图用于记录系统中不同用户的角色,以及他们需要系统提供的服务。
系统的用户被称为活动者,用户需要的服务被称为用例。

21.4    设计:P511
    (-)private、    (+)public
    组合(composition):实心菱形。
    包含(containment):空心菱形。
例:机场由许多跑道组成,没有跑道就不能称为机场;机场也包含许多飞机,但是没有飞机仍然可以称为机场。

21.4.1    枚举图
一个类型包含许多可能的数值,每个数值都有一个有意义的名称,该名称称为枚举类型。

21.5    实现:
对应用程序的用户隐藏实现级别的异常,抛出通用的应用程序的异常。

21.6    测试:场景测试
一个用例中的不同的路径被称为不同的场景(scenario)。在集成过程中,需要确保测试每个用例中的每个场景,这个过程称为场景测试(scenario testing)。

21.7 GUI+JTabbedPane
JTabbedPane类提供了一个用于组织用户界面的Swing组件,可以包含多个带有标签的卡片,每张卡片可以是任意一个组件,也可以把许多组件关联到一个标签。
setToolTipText()方法:可以为Swing组件添加工具提示。
setMnemonic()方法:可以为Swing组件创建键盘快捷键。

21.10    定制对话框窗口
通过对JDialog类继承可以定制对话框窗口。

自测题:
1.    为用例开发场景。
用例“注册机场飞机”:
*    注册成功。航空交通控制员提交飞机唯一的航班编号和它的起飞城市记录进入机场的飞机。如果该航班编码没有被机场注册,则注册成功。
*    注册失败。航空交通控制员提交飞机唯一的航班编号和它的起飞城市记录进入机场的飞机。如果该航班编码已经被机场注册,则软件将报出错误信号。

2.    (-)private,    (+)public

3.    包含与组合的区别:
    组合(composition):实心菱形。被组合的类必须在组合类中存在。
    包含(containment):空心菱形。被组合的类不是必须在组合类中存在。
例:机场由许多跑道组成,没有跑道就不能称为机场;机场也包含许多飞机,但是没有飞机仍然可以称为机场。

4.    a)P513    图21-3
b)    public enum Light{ RED, AMBER, GREEN};
c)    Light doorLight;
d)    switch(doorLight){
        case RED:            System.out.println("I am away");break;
        case AMBER:        System.out.println("I am busy");break;
        case GREEN:        System.out.println("I am free");break;
        }
       
5.    JTabbedPane组件的优点:通过不同的卡片组合和显示组件,可以将界面上的部分组件隐藏,直到需要的时候打开,减少屏幕的混乱。
注:与CardLayout管理器相似,但是编码更加简单。

6.    添加工具提示:P542
jbStop.setToolTipText("This button stops the game);

7.    创建快捷键:P543
viewMenu.setMnemonic('V');

编程练习:代码附件
只提供了些基础类,其他先挖坑在那里。

《Java大学教程》—第21章 高级案例研究的更多相关文章

  1. 正在学习的Java大学教程

    推荐本书<Java大学教程> 看的人比较少,我也是多年不看书了,基于教程一般选国外的方法,从图书馆选了本书. 看了一半,感觉书的内容比较认真,对于基本的Java知识都算介绍全了,而且全书是 ...

  2. Java编程思想 第21章 并发

    这是在2013年的笔记整理.现在重新拿出来,放在网上,重新总结下. 两种基本的线程实现方式 以及中断 package thread; /** * * @author zjf * @create_tim ...

  3. Java编程思想——第17章 容器深入研究 读书笔记(三)

    七.队列 排队,先进先出. 除并发应用外Queue只有两个实现:LinkedList,PriorityQueue.他们的差异在于排序而非性能. 一些常用方法: 继承自Collection的方法: ad ...

  4. Java编程思想——第17章 容器深入研究(two)

    六.队列 排队,先进先出.除并发应用外Queue只有两个实现:LinkedList,PriorityQueue.他们的差异在于排序而非性能. 一些常用方法: 继承自Collection的方法: add ...

  5. 《Java大学教程》—第11章 案例研究--第1部分

    自测题:1.    图11-1的UML设计中各个类之间的关系.Hostel与TenantList是关联关系:TenantList和PaymentList与ObjectList是泛化关系.TenantL ...

  6. 《Java大学教程》—第12章 案例研究--第2部分

    本章就是上一章的延续,主要是用GUI实现了控制界面. 编程练习:代码附件Hostel.java1.    正确运行2.    Runhostel.java3.    searchButton

  7. 《Java大学教程》—第18章 高级图形编程

    自测题:1.    在图形应用程序中为用户提供选择的多种方式:P433下拉菜单(pull-down menu).弹出式菜单(pop-up menu).对话框窗口(dialogue window).单选 ...

  8. 《Java大学教程》—第23章 Java网络编程

    本章主要关注的是Java的几个应用网络编程的场景,对于网络编程没有太多深入介绍,而Java本来也没有多少针对网络编程的特性.虽然Java有个Applet的概念,但是真用这个的开发的场景其实不多. 23 ...

  9. 《Java大学教程》—第24章 Java的背景

    本章主要介绍的是Java的背景知识,通过了解历史知道Java与其他语言的区别,以便更好选择在什么场景下使用Java. 24.2    语言的尺寸Java语言短小.紧凑,以C++为基础,放弃了一些特定的 ...

随机推荐

  1. eShopOnContainers 看微服务 ①:总体概览

    一.简介 eShopOnContainers是一个简化版的基于.NET Core和Docker等技术开发的面向微服务架构的参考应用. 该参考应用是一个简化版的在线商城/电子商务微服务参考示例应用. 其 ...

  2. 行为型---状态者模式(State Pattern)

    状态者模式的介绍 每个对象都有其对应的状态,而每个状态又对应一些相应的行为,如果某个对象有多个状态时,那么就会对应很多的行为.那么对这些状态的判断和根据状态完成的行为,就会导致多重条件语句,并且如果添 ...

  3. 阿里云redis映射到阿里云服务器

    参考文档:https://help.aliyun.com/document_detail/43850.html?spm=a2c4g.11186623.2.3.7yg9VH ECS Windows 篇 ...

  4. mysql函数技巧整理

    IF(expr,v1,v2) expr表达式为true时返回v1,否则返回v2 IFNULL(v1,v2) 如果v1为NULL,返回v2 :v1不为NULL 则返回v1 CASE expr WHEN ...

  5. js异步编程终级解决方案 async/await

      在最新的ES7(ES2017)中提出的前端异步特性:async.await. async.await是什么 async顾名思义是“异步”的意思,async用于声明一个函数是异步的.而await从字 ...

  6. Java从URL获取PDF内容

    Java直接URL获取PDF内容 题外话 网上很多Java通过pdf转 HTML,转文本的,可是通过URL直接获取PDF内容,缺没有,浪费时间,本人最近工作中刚好用到,花了时间整理下,分享出来,防止浪 ...

  7. 开源前端脚本错误监控及跟踪解决项目-BadJS 试用

    BadJS 是 一个web 前端脚本错误监控及跟踪项目.此项目为鹅厂 imweb(qq群:179045421) 团队的开源项目.此项目支持单机,集群,docker.存储支持mongodb等. 官网文档 ...

  8. 你试过不用if撸代码吗?

    译者按: 试着不用if撸代码,是件很有趣的事,而且,万一你领会了什么是“数据即代码,代码即数据”呢? 原文: Coding Tip: Try to Code Without If-statements ...

  9. ACM ICPC 2017 Warmup Contest 9 I

    I. Older Brother Your older brother is an amateur mathematician with lots of experience. However, hi ...

  10. layui table 表格模板按钮实例

    这是个是全部的jsp 页面: <%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8& ...