重用子类之间的通用代码[Java]

时间:2019-03-06 18:45:32

标签: java oop inheritance design-patterns multiple-inheritance

Public abstract class Profile <T extends ProfileOpt> {
..
}

Class A extends Profile<class C> {
..
}

Class B extends Profile<class D> {
..
}

Class D extends class C {
..
}

I have a method which has common code both in 

class A
update(String xyz, C c) {

}

Class B 
Update (String abc, D d) {

}

我知道在A类和B类中编写更新方法不是一个好主意,我需要重用代码。

我能想到的一种方法是仅使用此方法创建一个单独的Update类,然后实例化Update和A和B,并使用各自的参数从这两个类中进行方法调用。

是否有更好的方法,或者从OOPS角度看这是好的?

1 个答案:

答案 0 :(得分:0)

您似乎已经update方法的重载版本接受了不同类型的参数。在这种情况下,我建议如下:

  • Profile类中创建一个方法(因为它是A和B的父类),因此将其称为update(String arg)
  • 将通用逻辑写入该方法
  • 让A类和B类中的update个方法首先调用update(str)并编写自定义代码以处理相应方法中的特定类型