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