说在前面
上篇文章 没看的可以先点一下啦。在大致了解和梳理了对象关系的知识后,接下来,我们将开始动手创建这个小项目,从零开始布置和填充我们的文件和包,再逐渐实现细节,完成需求(具体需求后面会写)。
(本文偏新手向,逻辑实现程度较简单,以巩固对象关系和提高结构分析能力为主要目的,本人能力有限,知识浅薄,文章如有错误,欢迎指正啊!)
思维导图
(注意!接口实现类较之前有所更改):
需求如下
测试场景:
目前有四位滑手参赛,如下表格:
姓名 | 性别 | 年龄 | 国籍 |
---|---|---|---|
Eric | male | 19 | America |
Sean | male | 16 | America |
Leticia | female | 14 | Brazil |
ZhangSan | male | 17 | China |
为方便测试,我们为他们统一提供滑板:
板面 | 支架 | 轮子 | 砂纸 | 轴承 |
---|---|---|---|---|
Zero | Thunder | Spitfire | Mob | Bones |
参赛前他们会从以下参赛要求的招式中练习,努力过后他们最终只能够学会三个,成功率均为90%,而没学招式只有10%的成功率(学会招式为随机三个):
招式名称 | 脚位 | 转体 | 基本招 |
---|---|---|---|
normal frontside hardflip | normal | frontside | hardflip |
nollie backside Kickflip | nollie | backside | Kickflip |
fakie frontside bigspin | fakie | frontside | bigspin |
switch 360 ollie | switch | 360 | ollie |
凭借努力,他们的能力在赛前就被赞助商所发现,以下赞助商愿意为他们提供帮助
(每人都能获得最多三个赞助):
NIKE-SB 耐克滑板 | HUF 街头服饰 | SKALUTE 向滑板致敬 | 7-PE 国家赞助七波辉 |
---|
比赛的安排及规则如下:
赛事名称 | 地点 | 时间 |
---|---|---|
SLS街头联盟 | 芝加哥 | 2020年5月14日 |
规则:根据赛事要求的四个招式,每名参赛者按报名顺序,抽签决定所需完成的招式。若失败则直接出局,成功的则留下。如果多名选手都完成招式,则进行下一轮同样的比拼,直到决出最后留下的选手即为胜利者。
测试结果要求:
- 赛前公示比赛赛事信息,以及参赛选手的个人信息。
- 进行赛程的文字直播。
(我知道你看到这里的时候估计已经裂开了,别担心,接下来由我帮你缝回去~~)
Let’s Begin!
一、创建工程,布置路径
上图!(最底下的SkateTest类被遮了):
二、模型填充
模型就是整个项目的地基,后面的需求再复杂也躲不开对模型的依赖与运用。
所以,面对UML图,与其瞪着要实现的需求抓破头皮、发愁叫苦,不如先打好地基,建好模型。这个过程中能够敲敲键盘热热手,也算是把每个对象的属性过一遍。然后便是属性和 getter/setter 方法填充。
以Skater类为例:
package com.skatehomie.model;
import java.util.List;
public class Skater extends Person{
private String dominate;
// 组合了 Skateboard类
private Skateboard skateboard;
private List<String> brands;
// 聚合了 Trick类
private List<Trick> tricks;
// 漫长的 getter/setter 填充,应该有啥好的插件能一键生成吧?!
public void setDominate(String dominate) {
this.dominate = dominate;
}
public String getDominate() {
return this.dominate;
}
public void setSkateboard(Skateboard skateboard