之后会有总结完善版。
模块分工:
一个项目能够成功展示需要做好三个模块的规划。
分别是用户交互层、逻辑操作层和实体层三个模块。
用户交互层为主控模块,包含操作界面的设计和显示,逻辑操作层则是设计和实现用户和团队以及项目的功能(包括用户的注册和登录,以及增删改查,团队和项目的增删改查),实体层则包含整个项目中各个实体类的属性。
因此在IDE中的src模块下创建一个大包com.team和三个小包,分别是com.team.domain、com.team.service、com.team.view三个小包。
如图所示:
实体层:
实体层包含包含八个实体类和一个接口:
逻辑操作层:
包含用注册登录、用户和项目以及团队的增删改查等逻辑操作。
界面交互层包括六个类,通过主程序indexView将LoginView、NamelistView、ProjectView、TeamView四个模块衔接在一起,TSUtility则负责控制控制台端的输入指令的长度和各项提示。
设计思路:
首先是团队人员的增删改查:
1. 实现添加团队功能
查看当前团队成员列表子功能
添加团队成员子功能(添加后该开发人员的状态要变为false)
删除团队成员子功能(删除后该开发人员的状态要变为true)
2. 实现查看团队功能
列出所有的团队,当没有团队时要给出提示。
3. 实现删除团队功能
当没有团队或用户输入的团队编号有误时给出提示;删除后该团队所有成员的状态要变为true。
添加团队成员子功能中,包含以下几种失败信息:(需要抛出自定义异常)
成员已满,无法添加
该成员不是开发人员,无法添加
该员工已在本开发团队中
该员工已是某团队成员
团队中至多只能有一名架构师(以下判断可借用instanceof进行判断)
团队中至多只能有两名设计师
团队中至多只能有三名程序员
自定义异常:
TeamService类包含10个方法。首先是3个主功能实现方法:addTeam方法是实现添加团队的功能,getAllTeam方法是实现查看团队的功能,removeTeam方法是实现删除团队的功能。
然后是添加团队主功能里的3个子功能实现方法:getTeam方法是实现查看当前团队成员列表的子功能,addMember方法是实现添加团队成员的子功能(本方法中要注意根据不同情况抛出相应的自定义异常),removeMember方法是实现删除团队成员的子功能。</