悠悠楠杉
Java编写简易报修登记系统——多对象关系建模练习
java
public class RepairTicket {
private String ticketId;
private User reporter;
private Device device;
private String title;
private String description;
private String status;
private Technician assignedTechnician;
private Date createTime;
public RepairTicket(User reporter, Device device, String title, String description) {
this.ticketId = "T" + System.currentTimeMillis() % 100000;
this.reporter = reporter;
this.device = device;
this.title = title;
this.description = description;
this.status = "待处理";
this.createTime = new Date();
}
public void assignTo(Technician tech) {
this.assignedTechnician = tech;
this.status = "处理中";
}
public void complete() {
this.status = "已完成";
}
}
而Technician类代表维修技术人员,他们可以接收多个报修单,形成“一对多”的关系。虽然在这个简化版本中没有使用集合管理所有任务,但通过assignTo方法已经为未来扩展预留了空间。
整个系统的运行流程清晰:用户创建实例 → 提交报修生成报修单 → 管理员或系统将报修单分配给技术员 → 技术员完成维修并更新状态。这种流程驱动的设计让各个对象职责分明,符合高内聚低耦合的原则。
在实际编码过程中,我也遇到了一些设计上的思考。比如是否应该引入Admin类?是否要将状态管理抽象成枚举?最终我选择用enum Status { PENDING, IN_PROGRESS, COMPLETED }来规范状态值,避免字符串误写。
此外,为了增强可读性,我还重写了toString()方法,使打印报修单时能直观展示关键信息。虽然目前数据存储在内存中,未接入数据库,但这样的结构为后续持久化打下了良好基础。
通过这次练习,我深刻体会到对象建模不仅仅是定义类和属性,更重要的是理清它们之间的关系与协作方式。每一个方法调用、每一次对象传递,都在描绘真实业务场景中的互动逻辑。这不仅是一次Java语法的实践,更是一场思维模式的训练。
