Код ниже явно тормозит Закон Деметры, т.е. методы getServer().methodx(...)
. С другой стороны это выглядит довольно компактно = лучше читается?
abstract class BaseManager {
ResultSet find(String searchText) {
return getServer().find(searchText);
}
ResultSet fetch(String fetchText) {
return getServer().fetch(fetchText);
}
void save(String saveText) {
getServer().save(saveText);
}
abstract BaseManager getServer();
}
class Server1Manager extends BaseManager {
@Override
protected BaseManager getServer() {
return server1;
}
}
class Server2Manager extends BaseManager {
@Override
protected BaseManager getServer() {
return server2;
}
}
Если закон нарушается, как им рефакторить этот код? Спасибо заранее.