Android : Removing code duplication in an identical public methods of 2 not related classes

on Monday, September 8, 2014


I have 2 different classes which contain considerable number of the same public methods.



public class HorizontalPackageSelector extends HorizontalScrollView {

// skipped

public void method1() {
doSomething1();
doSomething2();
}

}


and



public class VerticalPackageSelector extends ScrollView {

// skipped

public void method1() {
doSomething1();
doSomething2();
}

}


And several other methods (about 200 lines in both classes).


I see only one way to avoid duplication:



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();
}

}


But this is not easy to do if a number of identical methods is too big.


0 comments:

Post a Comment