I have this 4 classes, almost the same with only difference the type of building parameter.
Is there some way to refactor/merge class Building and class NewBuilding to one.
I tried creating a generic class but sBuilding.getSomething() then is not valid.
public class Building {
static void doSomething(SearchBuilding sBuilding) {
if (sBuilding.getSomething()) {
useBuilding(sBuilding);
}
}
}
public class NewBuilding {
static void doSomething(SearchNewBuilding sBuilding) {
if (sBuilding.getSomething() ){
useBuilding(sBuilding);
}
}
}
public class SomeBuilding {
private final SearchBuilding building;
protected SearchBuilding getBuilding() {
return building;
}
protected void applyBuilding() {
Building.doSomething(getBuilding());
}
}
public class SomeNewBuilding {
private final SearchNewBuilding building;
protected SearchNewBuilding getBuilding() {
return building;
}
protected void applyBuilding() {
NewBuilding.doSomething( getBuilding());
}
}