Der folgende Code bremst anscheinend das Gesetz von Demeter, d. h. Methoden getServer().methodx(...)
. Von der anderen Seite sieht es ziemlich kompakt aus = besser lesbar?Ist dies eine Verletzung des Demeter-Gesetzes? vs. lesbaren Code
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;
}
}
Wenn das Gesetz verletzt wird, wie sie diesen Code umgestalten? Vielen Dank im Voraus.