做成一致还是允许差异?

在大师的灵魂发问下,迫使我们每天要做些思考,这个做法对不对?是不是直击问题的本质?有没有更好的做法?

这周纠结的事情是我们是不是要把系统中的所有安排车辆和司机统一到一个对象上?

本来在系统中存在的主力模式是运单上记录车辆和司机,称为mode1

但是因为运单plan过程过于复杂,而且运单还承担与供应商计费的任务,所以在我们实施货主客户的时候,我们发明了一个简化版的plan,在保留job的同时,产生一个简单一些的车辆司机安排。称为mode2

不论是mode1还是mode2,都是支持一次任务拆分与合并来进行派车的,区别是mode1支持拆分货物,并且严格的校验。必须所有的货物与路程都分派完,而mode2相对灵活。但是因为拆分与合并的要求,这个模型本身还是有一定的复杂度的。

那么现在又来了一种更简单的场景,在一个任务中,我只需要按其中的集装箱或是车辆要求来安排司机即可,无需拆断与合并,那么我们还需要要用到之前mode1,2的复杂模型中吗?这是一个十分纠结的问题。

曾经我觉得主流程应该要保持统一,一次车辆运输任务就应该用一个对象来实现,但是如果套用mode2的方式,势必给本来简单的业务场景带来复杂度。更为难受的是,这种对于mode2的特殊用法,可能会给mode2本身带来更高的复杂度,这是我们不想看到的。

所以目前的倾向根据业务场景的不同,暂时在三处分别保留车辆司机信息(mode3),但将保留司机车辆信息的对象统一继承一个父类,来表明这个对象的用途,并且定义一些公共的属性和行为。

不确定是不是还有更好的设计,感觉可以先向这个方向走一步看看。不管对错,在失败和教训中成长吧。

做成一致还是允许差异?_第1张图片
图片发自App

你可能感兴趣的:(做成一致还是允许差异?)