快递服务数据库UML类图:Getter与Setter操作必要性疑问
数据库UML类图中Getter/Setter的作用与取舍
为什么需要添加Getter和Setter?
- 封装与访问控制:数据库对应的实体类属性一般设为私有,Getter/Setter是外部访问属性的合规方式。比如快递的
状态属性,你可以在Setter里加校验逻辑,防止非法的状态变更(比如不能直接从「已签收」改回「运输中」),避免直接操作属性导致的业务逻辑混乱。 - 适配ORM框架:常用的ORM工具(像Hibernate、MyBatis)大多依赖Getter/Setter来完成数据库记录和实体对象的映射,没有这些方法可能导致数据无法正常读写。
- 预留扩展空间:后续如果要在属性读写时加额外逻辑(比如记录操作日志、对敏感数据加密),直接修改Getter/Setter就行,不用改动所有调用属性的代码。
为什么讲师的类图没全加?
- 简化图面:如果把所有属性的Getter/Setter都列出来,类图会变得非常臃肿,尤其是属性多的类。讲师可能默认大家清楚标准实体类会包含这些基础方法,所以只展示核心业务操作。
- 属性访问限制:有些属性是只读的(比如快递单号,生成后不允许修改),就不需要Setter;有些属性只需要写入不需要读取(比如内部用的状态标记),就不需要Getter。
- 聚焦业务逻辑:类图的核心是展示和业务强相关的操作(比如「派送快递」「签收快递」),Getter/Setter属于通用基础方法,没必要特意标注。
内容的提问来源于stack exchange,提问作者Numa ARX
相关产品推荐
相关产品推荐

