如果我们有父类Vehicle及其子类为Bus,BiCycle,MotorBike。
在服务类的某个时间点,我将获得列表车辆等所有对象。
我的业务逻辑应如下所示, 将收到故障车辆清单,并且对于每种车型,应分配相应的机械装置。
如果我收到自行车,应该去自行车技工或其他车辆以及他们各自的机械师。
当我用来切换case和if else条件时看起来很糟糕。所以我试图使用Visitor模式和Factory模式,Factory模式也会使用switch或if-else条件来动态获取对象并调用被覆盖的方法。目前使用访客模式。
请提出一些可以更好地处理此案例的方法。
答案 0 :(得分:0)
在sendToMechanic
类中定义Vehicle
抽象方法,并在每个子类中使用适当的定义覆盖它。
答案 1 :(得分:0)
我建议所有三个子类用`allocateToMechanic这样的方法实现相同的接口(例如repairable
)。界面主要描述" 对象可以做什么" vs抽象类描述" 对象是什么"。