Как называется антипаттерн, где методы берут общий объект-бог, у которого есть все свойства, которые могут понадобиться для метода, вместо того, чтобы явно указывать, что нужно методу?
Например:
public class BaseRequest
{
User user;
Car car;
CustomerRecords customerRecords;
Folder folder;
// ... etc for 10 - 20 other unrelated parameters
}
public void doSomething(BaseRequest request)
{
User user = request.getUser();
// do stuff with user, ignore all other attributes of request
}
Вместо
public void doSomething(User user)
{
// do stuff with user, since it's nice and clear what we want
}
Примечание. Я не имею в виду принцип единой ответственности, который нарушается BaseRequest
.Вместо этого я ищу имя антипаттерна, в котором сигнатура метода «лежит» о его зависимостях.
Кроме того, есть ли хорошие посты в блоге, которые кратко объясняют порочность этого шаблона, что я могууказать кому-то?