并行继承层次结构重构

时间:2012-01-20 07:58:32

标签: java refactoring

我正在处理一个并行继承层次结构,我有一个逐步重构的想法,并希望了解它是否有效或是否有更好的方法来实现它。

  1. 创建一个Handler类,其中包含实现所需特定行为的子项,例如CarHandler包含子项vwHandlerfordHandlerbmwHandler

  2. 添加对所有组件的调用并对其进行重组,以便子项返回必要的对象。例如致电vwHandler.getDrive将返回vwDrive.drive的结果,致电vwHandler.getSeat返回vwSeat.seat

  3. 重构其他类,以便它们提供一般功能而不是特定的功能,例如致电vwHandler.getDrive将返回drive(vwSpec1, vwSpec2)

  4. 处理程序示例

    public abstract class CarHandler
    {
       private Car car;
    
       public Car getCar()
       {
           return car;
       }
       public Car setCar()
       {
           car = car;
       }
    
       public CarHandler(Car car)
       {
           this.car = car;
       }
    
       public Car getCar()
       {
           return car;
       }
    
       public void setCar(Car car)
       {
           this.car = car;
       }
    
       public void updateCar()
       {
           Globalizer.updateOnServer(car);
       }
    
       public abstract Drive getNewDrive();
       public abstract Seat getNewSeat();    
    }
    

2 个答案:

答案 0 :(得分:0)

我不太了解您的问题,因为我没有看到您的示例与并行继承层次结构的关系,但我不喜欢您的approch中受保护的现场汽车。

有关详细信息,请参阅我的回答here。接受的答案是如何在基类中封装行为的一个很好的例子。

答案 1 :(得分:0)

实际上,这种方法对我来说非常有效,我实现了前两个步骤,最终删除了几百行重复,并且很好地了解了将来如何进一步重构。我强烈推荐这种方法。

相关问题