我有两个不同的类,其中包含相当多的相同公共方法。
public class HorizontalPackageSelector extends HorizontalScrollView {
// skipped
public void method1() {
doSomething1();
doSomething2();
}
}
和
public class VerticalPackageSelector extends ScrollView {
// skipped
public void method1() {
doSomething1();
doSomething2();
}
}
以及其他几种方法(两个类中大约200行)。
我只看到一种避免重复的方法:
public class PackageSelectorHelper {
// skipped
public void method1() {
doSomething1();
doSomething2();
}
}
public class HorizontalPackageSelector extends HorizontalScrollView {
private final PackageSelectorHelper helper = new PackageSelectorHelper(this);
// skipped
public void method1() {
helper.method1();
}
}
public class VerticalPackageSelector extends ScrollView {
private final PackageSelectorHelper helper = new PackageSelectorHelper(this);
// skipped
public void method1() {
helper.method1();
}
}
但如果许多相同的方法太大,这并不容易。
答案 0 :(得分:0)
您可以创建一个单独的类,并使您的类从该类扩展 或者你可以使方法静态 - 不完全知道方法
中的实现答案 1 :(得分:0)
interface AProb{
public void method1();
public void method2();
public void method3();
}
Class aImpl implements AProb{
public void method1(){
//Some thing
}
public void method2(){
//Some thing
}
public void method3(){
//Some thing
}
}
public class VerticalPackageSelector extends ScrollView {
AProb a = new aImpl();
public void method1(){
a.method1();
}
public void method2(){
a.method2();
}
public void method3(){
a.method3();
}
}