关于功能的单一职责的两次深刻教训

1.打印标签功能的设计

为了兼容原来的设计,我凭空设计了一张表,这张表用于记录某个订单是否生成过标签,如果生成过,就不再插入数据,如果没有生成过,就插入数据。

这种逻辑的问题:订单修改之后,订单下的货物信息需要重新生成货物信息。这个时候就不会再重新插入数据,导致打印出来的标签是原来的标签。

改动:如果该订单生成过标签数据,那么删掉,重新生成。如果没有,则重新生成。

改动后的效果:职责单一,该环节只会记录是否打印标签。其他所有的职责不承担。如果需要记录打印次数,那么这个次数设置在订单中,不再该表中设计。

2.结束检查设计

检查分为两次,但是经常是检查一次,第二次只是检查了一部分不再检查,这时候就需要结束检查。我结束检查的时候去判断这条数据所处的状态和检查数据的填充数字段。

这种逻辑的问题:当状态和数量不对时,那么就会出现不能结束检查的情况。这样会导致最初的设计完全没有达到。

改动:不判断当前数据的任何状态和填充数量,直接按检查规则结束检查。在备注字段做说明。

这样改动的效果:实现了最初的设计逻辑,程序的适用性更加大。

猜你喜欢

转载自blog.csdn.net/qq_37375667/article/details/100672802