用偏实战案例(滑手赛程管理系统)来梳理Java对象关系(二)

本文通过一个滑手赛程管理系统的实战案例,详细讲解如何使用Java实现对象关系,包括创建工程、填充模型、设置接口和异常处理,以及需求分析与实现。案例涉及滑手、招式、赞助商等实体,通过接口约定和异常处理实现赛事管理功能。
摘要由CSDN通过智能技术生成

说在前面

上篇文章 没看的可以先点一下啦。在大致了解和梳理了对象关系的知识后,接下来,我们将开始动手创建这个小项目,从零开始布置和填充我们的文件和包,再逐渐实现细节,完成需求(具体需求后面会写)。

(本文偏新手向,逻辑实现程度较简单,以巩固对象关系和提高结构分析能力为主要目的,本人能力有限,知识浅薄,文章如有错误,欢迎指正啊!)

思维导图

(注意!接口实现类较之前有所更改):

在这里插入图片描述

需求如下

测试场景:
目前有四位滑手参赛,如下表格:

姓名 性别 年龄 国籍
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日

规则:根据赛事要求的四个招式,每名参赛者按报名顺序,抽签决定所需完成的招式。若失败则直接出局,成功的则留下。如果多名选手都完成招式,则进行下一轮同样的比拼,直到决出最后留下的选手即为胜利者。

测试结果要求:

  1. 赛前公示比赛赛事信息,以及参赛选手的个人信息。
  2. 进行赛程的文字直播。

(我知道你看到这里的时候估计已经裂开了,别担心,接下来由我帮你缝回去~~)

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值